Кто-нибудь знает, как использовать HttpClient
.Net 4.5 с multipart/form-data
загрузкой?
Я не смог найти примеров в интернете.
Кто-нибудь знает, как использовать HttpClient
.Net 4.5 с multipart/form-data
загрузкой?
Я не смог найти примеров в интернете.
Ответы:
мой результат выглядит так:
источник
new MultipartFormDataContent(...)
содержала недопустимый символ границы (возможно, разделитель "/"). Нет ошибок, просто нет файлов, размещенных на сервере - в моем случае Context.Request.Files.Count = 0 в контроллере API. Возможно, простоNancy
проблема, но я предлагаю использовать что-то вродеDateTime.Now.Ticks.ToString("x")
этого.key
иfileName
параметрыcontent
( bilddatei и upload.jpg в данном примере).Это работает более или менее так (например, используя файл image / jpg):
(Вы можете
requestContent.Add()
делать все, что захотите, взгляните на потомка HttpContent, чтобы увидеть доступные типы для передачи)По завершении вы найдете содержимое ответа,
HttpResponseMessage.Content
которое вы можете использоватьHttpContent.ReadAs*Async
.источник
// here you can specify boundary if you need---^
:)async
в первой строке иawait
в строке перед последней не нужны.Это пример того, как разместить строку и поток файлов с HTTPClient, используя MultipartFormDataContent. Content-Disposition и Content-Type должны быть указаны для каждого HTTPContent:
Вот мой пример. Надеюсь, поможет:
источник
MultipartFormDataContent
.Content-Type
иContent-Disposition
все в порядке, но на Server 2008 R2 (IIS 7.5) не могу найти файлы, это странно. Так что я делаю как ответ.Вот еще один пример того, как использовать
HttpClient
для загрузкиmultipart/form-data
.Он загружает файл в API REST и включает в себя сам файл (например, JPG) и дополнительные параметры API. Файл напрямую загружается с локального диска через
FileStream
.Смотрите здесь полный пример, включающий дополнительную логику, специфичную для API.
источник
Попробуйте это работает для меня.
источник
TestServer.CreatClient()
сценарии .NET Core интеграционного теста для загрузки данных и файлов.Вот полный пример, который работал для меня.
boundary
Значение в запросе добавляется автоматически с помощью .NET.источник
Пример с прелоадером Dotnet 3.0 Core
источник
источник
Я добавляю фрагмент кода, который показывает, как отправить файл в API, который был открыт через команду DELETE http. Это не распространенный случай загрузки файла с глаголом DELETE http, но это разрешено. Я принял Windows NTLM аутентификацию для авторизации вызова.
Проблема, с которой можно столкнуться, состоит в том, что все перегрузки
HttpClient.DeleteAsync
метода не имеют параметров дляHttpContent
способа, которым мы получаем его вPostAsync
методе.Вам нужны ниже пространства имен в верхней части вашего файла C #:
PS Извините за то, что в моем коде так много блоков (IDisposable pattern). К сожалению, синтаксис использования конструкции C # не поддерживает инициализацию нескольких переменных в одном выражении.
источник
источник