Как можно опубликовать несколько двоичных файлов за одну операцию HTTP POST с помощью C # httpclient? Кажется, я не могу найти информацию о том, как работать с httpcontent таким образом - просто дважды выполняя postASync с данными потока?
2 ответа
Еще немного покопался и поэкспериментировал, и наконец нашел то, что кажется рабочим решением. Я пробовал это на тестовом сервере с некоторыми изображениями на HD - оба отправили, оба работали. С двумя примерами потоков.
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, он отправляется как multipart / form-data. Взгляните на это сообщение для отправки данных multipart / form через HttpClient.
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.