【发布时间】:2017-08-13 23:23:22
【问题描述】:
如何使用 HttpClient 将多个文件上传到此 api https://support.crowdin.com/api/add-file/?
它需要一个名为 files 的 post 参数,其中包含一个文件数组。
HttpClient client = new HttpClient();
using (var content = new MultipartFormDataContent())
{
var files = new MultipartContent("files");
var fileContent = new StreamContent(fileStream);
fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") { FileName = "test.locale.pot" };
fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/pot");
files.Add(fileContent);
content.Add(files);
content.Add(new StringContent("gettext"), "type");
var statusResult = client.PostAsync(addUrl, content).Result;
var statusString = statusResult.Content.ReadAsStringAsync().Result;
}
不幸的是,我不断得到
{
"success":false,
"error":{
"code":4,
"message":"No files specified in request"
}
}
最终我想用 RestSharp 做同样的事情,但是 RestSharp 和 HttpClient 有完全不同的 API。
【问题讨论】:
-
你会为你会发现的任何基于http的客户端一次又一次地问这个问题吗?
-
@SirRufo 不,我不会再问了,这两个类有不同的 API 并且以不同的方式工作。所以解决方案肯定会有所不同。我不是故意让你难过的。
-
这是一个不同的代码,所以我不认为它是重复的。
标签: c# post file-upload httpclient