post - 带有 Content-Type 的 Http 发布请求:application/x-www-form-urlencoded
问题描述
如何使用 content-type = application/x-www-form-urlencoded 发送 POST 请求。给定访问代码,我正在尝试使用 POST 请求获取 AccessToken,其中我在 POST URL 中设置了所有信息,所以我不知道在 postAysnc 方法中作为 Http 内容传递什么。
根据另一篇文章 For application/x-www-form-urlencoded ,发送到服务器的 HTTP 消息的主体本质上是一个巨大的查询字符串——名称/值对由 & 号分隔,名称分隔从等号 (=) 的值。这方面的一个例子是:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo。
所以我有类似的情况,我的 POST url 将所有信息作为查询字符串,在这种情况下,我不知道在 postAysnc 方法中作为 HttpContent 传递什么,因为它是一个强制参数
HttpClient 客户端 = 新 HttpClient(); 字符串内容查询字符串 = 新字符串内容(数据);HttpResponseMessage 响应 = 等待 client.PostAsync(new Uri(url), queryString );
解决方案
两种选择:
- 继续使用
StringContent
,但设置内容类型:new StringContent(data, Encoding.UTF8, "application/x-www-form-urlencoded")
- 而不是使用
StringContent
,使用FormUrlEncodedContent
; 请注意,这需要一系列KeyValuePair<string, string>
描述值(例如,创建一个包含{ {"MyVariableOne", "ValueOne"}, {"MyVariableTwo", "ValueTwo"} }
推荐阅读
- python - PyCharm 不强制从具有具体类型参数的通用抽象类继承
- node.js - 在 Node + Express API 中检测到的打开句柄会阻止 Jest 退出
- graphql - 文本字段与服务器的双向同步 - 快速输入
- flutter - 在 Flutter 中接收到 token 后导航到主屏幕
- ajax - Google 图表不会基于新的 Ajax 过滤器重绘图表
- google-cloud-functions - 您可以运行可从公共 ip 访问的 /host firebase 模拟器吗?
- javascript - 为什么这个函数不触发?
- python - 使用 FRIDA Stalker 制作的指令计数器
- git - 安装git,哪个git版本没问题,还有一个$path Q
- java - iText7 - Html 到 PDF - 带页面计数器的页脚 - 如何更改颜色