内容类型为HTTP的请求:application / x-www-form-urlencoded

时间:2019-01-20 20:24:22

标签: post httpclient access-token url-encoding

如何发送内容类型= application / x-www-form-urlencoded的POST请求。 给定一个访问代码,我试图使用POST请求获取AccessToken,在该请求中,我在POST URL中设置了所有信息,因此我不知道在postAysnc方法中作为Http内容传递什么。

根据另一篇文章,对于application / x-www-form-urlencoded来说,发送到服务器的HTTP消息的主体本质上是一个巨大的查询字符串-名称/值对用&分隔,名称与值之间用等号(=)分隔。例如:

MyVariableOne = ValueOne&MyVariableTwo = ValueTwo。

因此,在类似的情况下,我的POST网址具有所有信息作为查询字符串,在那种情况下,我不知道在postAysnc方法中以HttpContent的形式传递什么,因为它是强制性参数

HttpClient客户端=新的HttpClient(); StringContent queryString =新的StringContent(数据); HttpResponseMessage response =等待客户端。PostAsync(new Uri(url),queryString);

1 个答案:

答案 0 :(得分:0)

两个选项:

  1. 继续使用StringContent,但设置内容类型:new StringContent(data, Encoding.UTF8, "application/x-www-form-urlencoded")
  2. 使用StringContent代替使用FormUrlEncodedContent;请注意,这采用描述值的KeyValuePair<string, string>序列(例如,创建包含{ {"MyVariableOne", "ValueOne"}, {"MyVariableTwo", "ValueTwo"} }
  3. 的字典)