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);
        }
    }
}