如何在Web客户端的post请求中发送x-www-form-urlencoded?

Skr*_*ord 3 c# webclient

我知道我可以发送 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);
Run Code Online (Sandbox Code Playgroud)

Imm*_*uel 8

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);
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助..因为 HttpClient 是最新的也倾向于更好的restapi..


Rah*_*hul 6

您可以在类UploadString()上使用方法,WebClient例如

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);
}
Run Code Online (Sandbox Code Playgroud)