gpt4 book ai didi

post - ServiceStack - 使用一个 POST 请求发布多个文件

转载 作者:行者123 更新时间:2023-12-01 06:31:36 24 4
gpt4 key购买 nike

我在这个问题上苦苦挣扎了几个小时,但我找不到任何解决方案。有人使用 ServiceStack 通过一个 POST 请求上传多个文件吗?

我正在尝试使用 PostFile:

  FileInfo fi = new FileInfo("ExampleData\\XmlAPI.xml");
var client = new XmlServiceClient("http://localhost:1337");
client.PostFile<DefaultResponse>("/test", fi, "application/xml");

但在这里我只能向请求添加一个文件。我的第二个镜头是使用 LocalHttpWebRequestFilter 但里面只有一个扩展方法,它也只允许发布一个文件。

最佳答案

多个文件上传 API 已 added to all .NET Service Clients in v4.0.54允许您在单个 HTTP 请求中轻松上传多个流。它支持使用 QueryString 和POST 的 FormData 以及多个文件上传数据流:

using (var stream1 = uploadFile1.OpenRead())
using (var stream2 = uploadFile2.OpenRead())
{
var client = new JsonServiceClient(baseUrl);
var response = client.PostFilesWithRequest<MultipleFileUploadResponse>(
"/multi-fileuploads?CustomerId=123",
new MultipleFileUpload { CustomerName = "Foo,Bar" },
new[] {
new UploadFile("upload1.png", stream1),
new UploadFile("upload2.png", stream2),
});
}

或者仅使用类型化请求 DTO。 JsonHttpClient 还包括每个新的异步等价物PostFilesWithRequest API:

using (var stream1 = uploadFile1.OpenRead())
using (var stream2 = uploadFile2.OpenRead())
{
var client = new JsonHttpClient(baseUrl);
var response = await client.PostFilesWithRequestAsync<MultipleFileUploadResponse>(
new MultipleFileUpload { CustomerId = 123, CustomerName = "Foo,Bar" },
new[] {
new UploadFile("upload1.png", stream1),
new UploadFile("upload2.png", stream2),
});
}

关于post - ServiceStack - 使用一个 POST 请求发布多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com