HTTP istek methodları, bir HTTP isteğinde belirli bir eylemi gerçekleştirmek için kullanılan komutlardır. İşte en yaygın kullanılan HTTP istek methodlarından bazıları ve C# örnekleri:
1) GET
Belirtilen URI'deki bir kaynağın okunmasını istemek için kullanılır. Bu method, sunucudan veri almak için kullanılır.
using System;
using System.Net.Http;
class Program
{
static async void Main()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.example.com");
string content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
2) POST
Belirtilen URI'ye yeni bir kaynak eklemek veya mevcut bir kaynağı güncellemek için kullanılır. Bu method, sunucuya veri göndermek için kullanılır.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
HttpClient client = new HttpClient();
string url = "https://www.example.com/api/resource";
string jsonPayload = "{\"name\":\"John\", \"age\":30}";
HttpContent content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(url, content);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
3) PUT
Belirtilen URI'deki bir kaynağın tamamen değiştirilmesini istemek için kullanılır. Bu method, mevcut bir kaynağı güncellemek için kullanılır.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
HttpClient client = new HttpClient();
string url = "https://www.example.com/api/resource/123";
string jsonPayload = "{\"name\":\"John\", \"age\":35}";
HttpContent content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PutAsync(url, content);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
4) PATCH
PATCH, bir kaynağın kısmi olarak güncellenmesini sağlayan bir HTTP istek methodudur. Bu method, bir kaynağın sadece belirli alanlarını güncellemek için kullanılır. İşte bir örnek:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
HttpClient client = new HttpClient();
string url = "https://www.example.com/api/resource/123";
string jsonPayload = "{\"name\":\"John Doe\"}";
HttpContent content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");
HttpRequestMessage request = new HttpRequestMessage(new HttpMethod("PATCH"), url);
request.Content = content;
HttpResponseMessage response = await client.SendAsync(request);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Kaynak başarıyla güncellendi.");
}
else
{
Console.WriteLine("Bir hata oluştu: " + response.StatusCode);
}
}
}
Bu örnekte, HttpRequestMessage
sınıfı kullanılarak bir PATCH
isteği oluşturulur. İstek içeriği, belirli alanların güncellenmesini sağlayacak JSON verisiyle doldurulur. SendAsync
metodu ile istek gönderilir ve yanıt değerlendirilir.
Lütfen unutmayın ki PATCH
methodu, HTTP/1.1 standartlarına göre zorunlu değildir ve tüm sunucular tarafından desteklenmeyebilir. Bu nedenle, kullanacağınız API veya sunucunun PATCH
isteklerini destekleyip desteklemediğini doğrulamak önemlidir.
5) OPTIONS
OPTIONS, bir sunucudaki kaynağın hangi HTTP istek methodlarını desteklediğini öğrenmek için kullanılan bir HTTP istek methodudur. İsteği gönderen istemci, sunucunun hangi methodları desteklediğini ve hangi ek özellikleri sağladığını belirlemek için OPTIONS isteğini kullanabilir. İşte bir örnek:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
HttpClient client = new HttpClient();
string url = "https://www.example.com/api/resource";
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Options, url);
HttpResponseMessage response = await client.SendAsync(request);
if (response.IsSuccessStatusCode)
{
string allowedMethods = response.Headers.GetValues("Allow").FirstOrDefault();
Console.WriteLine("Desteklenen HTTP Methodları: " + allowedMethods);
// Ek sunucu yanıt başlıklarını işleyebilirsiniz.
// Örnek olarak:
// string additionalHeaders = response.Headers.GetValues("Access-Control-Allow-Headers").FirstOrDefault();
// Console.WriteLine("Ek başlıklar: " + additionalHeaders);
}
else
{
Console.WriteLine("Bir hata oluştu: " + response.StatusCode);
}
}
}
Bu örnekte, HttpRequestMessage
sınıfı kullanılarak bir OPTIONS
isteği oluşturulur. SendAsync
metodu ile istek gönderilir ve yanıt değerlendirilir. Allow
başlığından desteklenen HTTP methodlarını alabilirsiniz. Ayrıca, sunucunun ek başlıklar sağlaması durumunda, ilgili başlıkları alabilirsiniz.
OPTIONS isteği, genellikle CORS (Cross-Origin Resource Sharing) kontrolleri sırasında kullanılır ve bir sunucunun hangi kaynaklara erişime izin verdiğini belirlemek için kullanılabilir.