Search code examples
c#asp.net-web-apidotnet-httpclient

.NET HttpClient. How to POST string value?


How can I create using C# and HttpClient the following POST request: User-Agent: Fiddler Content-type: application/x-www-form-urlencoded Host: localhost:6740 Content-Length: 6

I need such a request for my WEB API service:

[ActionName("exist")]
[HttpPost]
public bool CheckIfUserExist([FromBody] string login)
{           
    return _membershipProvider.CheckIfExist(login);
}

Solution

  • In ASP.NET 4.5 (for 4.0, you need to install the Microsoft.AspNet.WebApi.Client NuGet package):

    using System;
    using System.Collections.Generic;
    using System.Net.Http;
    
    class Program
    {
        static void Main(string[] args)
        {
            Task.Run(() => MainAsync());
            Console.ReadLine();
        }
    
        static async Task MainAsync()
        {
            var client = new HttpClient();
            client.BaseAddress = new Uri("http://localhost:6740");
            var content = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair<string, string>("", "login")
            });
            var result = await client.PostAsync("/api/Membership/exists", content);
            string resultContent = await result.Content.ReadAsStringAsync();
            Console.WriteLine(resultContent);
        }
    }