使用httpclient在单个POST中发布多个二进制文件
本文关键字:布多个 二进制文件 POST httpclient 单个 使用 | 更新日期: 2023-09-27 18:26:08
如何使用C#httpclient在单个httpPOST操作中发布多个二进制文件?我似乎找不到关于如何以这种方式处理httpcontent的信息——只需对流数据进行两次后ASync?
反复研究和试验,最终找到了一个可行的解决方案。我在一个测试服务器上尝试了这一点,其中一些图像是高清的——都发送了,都有效。有两个流示例。
var client = new HttpClient();
var stream3 = new FileStream("saved.jpg", FileMode.Open);
var stream2 = new FileStream("saved2.jpg", FileMode.Open);
var dic = new Dictionary<string, string>();
dic.Add("Test1", "This was the first test.");
var addy = "http://posttestserver.com/post.php";
using (var content = new MultipartFormDataContent())
{
content.Add(new StreamContent(stream2), "s1", "Saved1.jpg");
content.Add(new StreamContent(stream3), "s2", "Saved2.jpg");
var response = await client.PostAsync(addy, content);
response.EnsureSuccessStatusCode();
string finalresults = await response.Content.ReadAsStringAsync();
}
这将取决于将文件发送到的API的实现,但通常情况下,如果在单个POST请求中发送多个文件,则会将其作为多部分/form-data发送。看看这篇关于通过HttpClient发送多部分/表单数据的文章。