如何在 webclient 的 post 请求中发送 x-www-form-urlencoded? [复制]
Posted
技术标签:
【中文标题】如何在 webclient 的 post 请求中发送 x-www-form-urlencoded? [复制]【英文标题】:How to send x-www-form-urlencoded in a post request in webclient? [duplicate] 【发布时间】:2019-10-04 21:38:20 【问题描述】:我知道我可以发送 json,但我找不到如何发送 x-www-form-urlencoded。我不知道该尝试什么,因为我找不到任何东西。
WebClient wc = new WebClient();
string data = "channel_id=+12039273888&channel_type=phone&channel_verification=514950";
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string result = wc.UploadString("http://3.86.171.88/api/login", data);
System.Console.WriteLine(result);
【问题讨论】:
【参考方案1】:您可以在WebClient
类上使用UploadString()
方法,例如
string data = "name=john&age=20&city=Uganda";
using (WebClient client = new WebClient())
client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string result = client.UploadString(url of api resource, data);
【讨论】:
我尝试将其添加到我的代码中,但出现 402 错误 - 无法处理的不完整。【参考方案2】: HttpClient client = new HttpClient();
HttpContent content = new FormUrlEncodedContent(
new List<KeyValuePair<string, string>>()
);
content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
content.Headers.ContentType.CharSet = "UTF-8";
client.DefaultRequestHeaders.ExpectContinue = false;
HttpResponseMessage response = await client.PostAsync(new Uri(https://some url...), content);
希望这会有所帮助.. 因为 HttpClient 是最新的也更好地倾向于 restapi..
【讨论】:
以上是关于如何在 webclient 的 post 请求中发送 x-www-form-urlencoded? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Spring WebFlux,如何调试我的 WebClient POST 交换?
如何在特定 jwt 上下文下发出发布请求 webclient
尝试在春季使用 webClient 在 post 请求中发送字符串列表
Spring WebFlux WebClient - 如何解决 400 错误请求
缺少使用 WebClient 发送 POST 请求的 Content-Length 标头(SpringBoot 2.0.2.RELEASE)