评论

C#下使用HttpClient给微信上传文件找不到文件的原因与解决办法

C#下使用HttpClient给微信上传文件找不到文件的原因与解决办法

通过HttpClient调用微信上传文件接口时会报找不到文件,如视频号小店的img/upload就会报图片为空,同样的代码传给自己后台能正常收到文件。

原因:

HttpClient生成的Header如下

Content-Type: multipart/form-data; boundary="--------------------------707754171968287661800070"

微信后台只能解析如下形式的Header

Content-Type: multipart/form-data; boundary=--------------------------707754171968287661800070

解决办法:

string boundary = "----" + DateTimeOffset.Now.Ticks.ToString("x");
var content = new MultipartFormDataContent(boundary);
content.Add(new ByteArrayContent(fileBytes), "\"media\"", "\"" + newFileName + "\"");
content.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary); 

说明:

1.必须手动指定ContentType

2.name和filename必须带上双引号,如本身name是media,那么传参必须是"media"

最后一次编辑于  2023-08-11  
点赞 1
收藏
评论
登录 后发表内容