What if I have this data to send: Post parameters:
access_token access_token_Value
list Array of array(with 4 pairs of arg)
arg1 arg1_value
arg2 arg2_value
arg3 arg3_value
arg4 arg4_value
and in specification is this (All possible enumerated values in both POST parameters and returned arrays are specified in this document and separated by vertical bars ||). I have Universal Windows app project. How convert this data to "application/x-www-form-urlencoded" format? To ordinary pairs like key-value i use
var body = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("arg1", "arg1value"),
new KeyValuePair<string, string>("arg2", "arg2value"),
new KeyValuePair<string, string>("arg3", "arg3value"),
new KeyValuePair<string, string>("arg4", "arg4value")
};
var content = new FormUrlEncodedContent(body);
var result = httpClient.PostAsync(uri, content).Result;
and this is ok (transmitted data: arg1=arg1value&arg2=arg2value&....), but what if the data are the same as I wrote at the beginning of this post?
Assuming your keys don't need encoding (ie. don't include any characters that are special in URIs), where fields in a collection of name-value pairs with the values already converted to strings):
var httpBody = String.Join('&',
fields.Select(nv =>
String.Concat(nv.Name,
"=",
WebUtility.UrlEncode(nv.Value))));
and then use the applicable encoding to serialise into the HttpWebRequest
body.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With