Отправка потока как части тела JSONC#

Место общения программистов C#
Ответить
Anonymous
 Отправка потока как части тела JSON

Сообщение Anonymous »

У меня есть метод PATCH в контроллере REST MVC, реализованный на C#, который мне нужно иметь возможность вызывать. Тело запроса PATCH представляет собой объект (полученный в формате JSON), где большинство свойств являются стандартными типами, но одно (файл) имеет тип Stream.
Вот так:

Код: Выделить всё

public class MyDTO
{
public string SomeProperty { get; set; }
public Stream SomeFile { get; set; }
}
При запуске этой службы пользовательский интерфейс Swagger предоставляет SomeFile как строку в примере JSON, который он генерирует.
Когда я пишу client, для этого я присваиваю значения этим свойствам, я могу присвоить значение Stream SomeFile, сгенерированному из фактического файла из файловой системы. Однако когда я пытаюсь запустить это, я получаю сообщение об ошибке.

Тайм-ауты не поддерживаются в этом потоке

Трассировка стека:

System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка.
---- > System.InvalidOperationException: Таймауты в этом потоке не поддерживаются.
в System.Net.Http.HttpConnection.SendAsync(запрос HttpRequestMessage, Boolean async, CancellationToken cancelToken)
в System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(запрос HttpRequestMessage, Логическая асинхронность, Boolean doRequestAuth, CancellationToken cancelToken)
в System.Net.Http.RedirectHandler.SendAsync(запрос HttpRequestMessage, Boolean async, CancellationToken cancelToken)
в System.Net.Http.HttpClient.g__Core|83_0(запрос HttpRequestMessage, HttpCompletionOption завершениеOption, CancellationTokenSource cts, логическое значение DisposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at ServiceClient.Classes.RestClient.SendPatchRequestNoAuth[TContentType](String url, содержимое TContentType) в C:\Development\ServiceClient\Classes\RestClient.cs:строка 58

Я пытался скопировать FileStream в поток в памяти, но здесь та же проблема.
Как присвоить значение этому свойству для вызова службы?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -json-body
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»