Получить данные потока из ответа WEB API в приложении windows / console - PullRequest
0 голосов
/ 20 января 2020

Мне нужно загрузить файл из WEB API в windows приложение через потоковые данные.

WEB API:

public HttpResponseMessage download(string fileid){

var response = new HttpResponseMessage ();    
response.statuscode= HttpStatusCode.Ok;
response.Content =new StreamContent(filestream);// I have a filestream here .
return response;

Здесь расположение и тип содержимого добавляются после добавления содержание На стороне клиента я пробовал следующее.

HttpResponseMessage file = httpclinet.GetAsync("url").Result();

Var stream = file.Content.ReadAsStreamAsync().Result();

using (var data = File.create(@"somepath.txt"))
{
    data.seek(0,seekorigin.begin);

    stream.copyto(data);

}

Но я не получил вывод. То, что я получаю, это детали потока, такие как объект версии stream.content, statuscode. Как этот файл был написан. Как я могу записать данные потока в этот файл.

1 Ответ

0 голосов
/ 20 января 2020

я бы предложил вам использовать ключевые слова asyn c -await , вы можете изменить свой код следующим образом, чтобы получить результаты:

HttpResponseMessage file = await httpclinet.GetAsync("url");
var stream = await file.Content.ReadAsStreamAsync()

Также вы необходимо добавить ключевое слово async в ваш метод следующим образом:

public async Task<HttpResponseMessage> download(string fileid)
...