C#
Using HttpClient
- Microsoft: Call a Web API From a .NET Client (C#)
Serializing Model To Json String
- Stack Overflow: Posting to a Web API using HttpClient and Web API method [FromBody] parameter ends up being null
Post Model as JSON using HttpClient
- Stack Overflow: How to use System.Net.HttpClient to post a complex type?
Code Sample
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json;
namespace SampleApplication
{
public class DataHandler
{
///
/// ارسال یک درخواست HTTP از نوع GET به WebApi
///
/// نوع مدلی که باید باز گردد
/// امتداد URL درخواستی بعد از نام هاست
///
public TResponse GetData(string partialUrl)
{
string jsonString;
using (HttpClient client = new HttpClient
{
BaseAddress = new Uri("http://api.alaedin.travel/")
})
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync(partialUrl).Result;
jsonString = response.Content.ReadAsStringAsync().Result;
}
return JsonConvert.DeserializeObject(jsonString);
}
public TResponse PostData(string partialUrl)
{
string jsonString;
using (HttpClient client = new HttpClient
{
BaseAddress = new Uri("http://api.alaedin.travel/")
})
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//var content = new FormUrlEncodedContent(new[]
//{
// new KeyValuePair("", "login")
//});
var content = new StringContent(null);
var response = client.PostAsync(partialUrl, content).Result;
jsonString = response.Content.ReadAsStringAsync().Result;
}
return JsonConvert.DeserializeObject(jsonString);
}
///
/// ارسال یک درخواست HTTP از نوع POST به WebApi
///
/// نوع مدلی که باید باز گردد
/// نوع مدلی که باید ارسال گردد
/// امتداد URL درخواستی بعد از نام هاست
/// شی ای که حاوی اطلاعات بدنه Post می باشد
///
public TResponse PostData(string partialUrl, TRequest request)
{
string jsonString;
using (HttpClient client = new HttpClient
{
BaseAddress = new Uri("http://api.alaedin.travel/")
})
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//var content = new FormUrlEncodedContent(new[]
//{
// new KeyValuePair("", "login")
//});
var jsonRequest = JsonConvert.SerializeObject(request);
var content = new StringContent(jsonRequest);
var response = client.PostAsync(partialUrl, content).Result;
jsonString = response.Content.ReadAsStringAsync().Result;
}
return JsonConvert.DeserializeObject(jsonString);
}
}
}