【发布时间】:2021-11-11 18:01:35
【问题描述】:
我正在更新一些旧的 C# 代码以使用 HttpClient 而不是 WebClient。作为其中的一部分,我需要将文件的字节数组上传到 api。
使用 WebClient,一切正常
byte[] data = GetMyData();
using (var client = new WebClient())
{
//set url, headers etc
var r = client.UploadData(url, "PUT", data);
}
使用HttpClient,我尝试了各种方法,例如
byte[] data = GetMyData();
using (var client = new HttpClient())
{
//set url, headers etc
var r = await client.PutAsync(url, new ByteArrayContent(data));
}
我还尝试了使用 Google 搜索发现的多部分数据的不同方法,但服务器不接受我尝试过的任何内容。我没有很多关于服务器API的文档,我只知道WebClient方式已经运行了很多年。有没有办法用 HttpClient 重新创建 WebClient.UploadData 行为?
【问题讨论】:
-
代码乍一看还不错。您能否将成功和不成功的请求与 Fiddler 或其他嗅探器进行比较?有什么区别?
-
您确定正确设置了标题吗?您在此处显示的代码看起来完全相同。
标签: c# .net-core dotnet-httpclient