Rolando Corratge Nieves
Rolando Corratge Nieves

Reputation: 1233

C# HttpClient POST request pass already encoded data

I have already encoded data that wants to pass as is the String to HttpClient PostRequest

but FormUrlEncodedContent only accepts a dictonary as parameter

I want something like client.PostAsync(url, plain_string_content)

 var content = new FormUrlEncodedContent(values);

            using (var client = new HttpClient())
            {

      try
                {

                     var response = client.PostAsync(url, content).GetAwaiter().GetResult();
                     string resp=response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
                     return resp;
                }

Upvotes: 0

Views: 644

Answers (1)

Matías Fidemraizer
Matías Fidemraizer

Reputation: 64943

You may use HttpClient.SendAsync:

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post);
request.Content = new StringContent(plain_string_content);
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");

await client.SendAsync(request);

Note that, after all, PostAsync and other HttpClient's methods are shortcuts of SendAsync.

Upvotes: 2

Related Questions