【发布时间】:2020-01-06 17:02:26
【问题描述】:
如何在 HttpClient 的帮助下仅使用 Key-Value 参数发送 form-data POST 请求?
这是我的方法代码:
public async Task<HttpResponseMessage> MakePostAsync(string endpoint, string token, Dictionary<string, string> headers = null, KeyValuePair<string, string>[] parameters = null)
{
var request = new HttpRequestMessage(HttpMethod.Post, endpoint);
if (headers != null)
{
foreach (var header in headers)
request.Headers.Add(header.Key, header.Value);
}
request.Headers.Add("Content-Type", "multipart/form-data");
var formaData = new MultipartFormDataContent();
formaData.Add(new StringContent(token), "__RequestVerificationToken");
formaData.Add(new StringContent("admin"), "Username");
formaData.Add(new StringContent("1"), "Password");
request.Content = formaData;
HttpResponseMessage response = await Task.Run(() => client.SendAsync(request));
return response;
}
【问题讨论】:
-
你得到什么响应信息?
-
为什么 "HttpResponseMessage response = await Task.Run(() => client.SendAsync(request));" 而不是 "HttpResponseMessage response = await client. SendAsync(request);" ?
-
并且,你确定你在邮递员中使用 multipart/form-data 发送吗?看起来邮递员正在发送文本/json?
-
so.. 有一个 Content-Type 的请求“multipart/form-data;boundary=---------------------- ----939589509105609250428586"
-
@Andrew - 你在使用邮递员时看到了吗?
标签: c# request multipartform-data dotnet-httpclient