REST GET/POST/PUT/DELETE yapmak için uyguladığım adımlar şu şekilde:
- Visual Studio’da Visual C#/Windows Desktop/Console Application projesi oluşturdum. Adını RestClientSample koydum.
- NuGet üzerinden Microsoft.AspNet.WebApi.Client paketini yükledim.
- Rest servise gönderilecek ve servisten dönecek nesnelere karşılık gelen sınıfları oluşturdum.
- Program.cs’yi aşağıdaki gibi değiştirdim.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Threading.Tasks;namespace RestClientSample{ class Program { static void Main(string[] args) { try { RunAsync().Wait(); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } Console.ReadKey(); } static async Task RunAsync() { using (var client = new HttpClient()) { // Servis adresi client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Servis Basic Http Authentication istiyorsa eklenir. client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(new UTF8Encoding().GetBytes(string.Format("{0}:{1}", "TestUser", "Pass")))); // HTTP GET HttpResponseMessage response = await client.GetAsync("api/IotDatas/1"); if (response.IsSuccessStatusCode) { IotData product = await response.Content.ReadAsAsync<IotData>(); Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Value, product.CreateDate); } // HTTP POST var iotData = new IotData { Name = "Test", Value = null, CreateDate = DateTime.Now }; response = await client.PostAsJsonAsync("api/IotDatas", iotData); if (response.IsSuccessStatusCode) { Uri gizmoUrl = response.Headers.Location; // HTTP PUT iotData.Value = null; response = await client.PutAsJsonAsync(gizmoUrl, iotData); // HTTP DELETE response = await client.DeleteAsync(gizmoUrl); } } } }}