I have a curl request, which is valid:
curl --insecure -X POST 'https://someurl' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'k1=v1' --data-urlencode 'k2=v2' --data-urlencode 'k3=v3' --data-urlencode 'k4=v4' --data-urlencode 'k5=v5'
I've tried multiple solutions from SO but unfortunately, I'm unable to convert it to HttpClient
request, I'm getting a BadRequest
. My code is:
var client = new HttpClient();
// var dict = new Dictionary<string, string>();
// dict.Add("k1", "v1");
// dict.Add("k2", "v2");
// dict.Add("k3", "v3");
// dict.Add("k4", "v4");
var request = new HttpRequestMessage(HttpMethod.Post,
"https://someurl");
request.Content = new StringContent("{\"k1\":\"v1\",\"k2\":\"v2\",\"k3\":\"v3\",\"k4\":\"v4\"}",
Encoding.UTF8,
"application/x-www-form-urlencoded");//CONTENT-TYPE header
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
// request.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
// var req = new HttpRequestMessage(HttpMethod.Post, url) { Content = new FormUrlEncodedContent(dict) };
// var res = client.SendAsync(request);
client.SendAsync(request)
.ContinueWith(responseTask =>
{
// responseTask had badrequest status in it
});
This can be shorter :
var client = new HttpClient();
var data = new Dictionary<string,string>() { { "key","val"},{"key","val"},{"key","val"},{"key","val"} };
// or var data = new List<KeyValuePair<string, string>> { {new KeyValuePair<string, string>( "key","v")},{new KeyValuePair<string, string>( "key","v")},{new KeyValuePair<string, string>( "key","v")},{new KeyValuePair<string, string>( "key","v")}};
var Content = new FormUrlEncodedContent(data);
var res = client.PostAsync("post uri",Content).Result;
Console.WriteLine(res);