C#

https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client
https://stackoverflow.com/questions/35344981/posting-to-a-web-api-using-httpclient-and-web-api-method-frombody-parameter-en
https://stackoverflow.com/questions/10304863/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);
        }
    }
}