OneDrive REST API Загрузить файл

Я использую REST API OneDrive в своей веб-службе WCF. Все работает хорошо, но Загрузка файла. Мне нужно получить объект Stream загруженного файла, но класс MemoryStream дает мне исключение о ReadTimeout и WriteTimeout. Это код:

.... some code ....
var rClient = new RestClient("https://apis.live.net/v5.0/");
var rRequest = new RestRequest(rootFile.id + "/content", Method.GET);
rRequest.AddParameter("access_token", data.accessToken);
var rResponse = rClient.Execute(rRequest); // THE RESPONSE IS OK
byte[] array = rResponse.RawBytes;
Stream stream = new MemoryStream(array); // PROBLEM HERE!
return stream;

Поэтому, когда я создаю объект Stream, MemoryStream выдает исключение 2 для полей ReadTimeout и WriteTimeout, говоря, что они не поддерживаются для этого потока. я не знаю как это решить


person Cardella    schedule 21.09.2014    source источник
comment
Нет, не имеет смысла. Без полной трассировки стека из исключения на ваш вопрос нет ответа. ВСЕГДА перехватывайте исключение и либо используйте ссылку для копирования сведений об исключении в буфер обмена в диалоговом окне помощника по исключению, либо вызовите ToString() для исключения и включите этот текст в свой вопрос. Исключения сообщают вам, что и где идет не так, и часто также предлагают решение.   -  person    schedule 21.09.2014
comment
Спасибо Уилл! Я ошибся в том, где было выбрано исключение   -  person Cardella    schedule 21.09.2014
comment
Добавьте свой ответ ниже (немного дополните его кодом из фактической точки исключения), и вы можете выбрать его как правильный и закрыть его (без вреда для вашей новой учетной записи — прочитайте автоматические блоки вопросов учетной записи на Переполнение стека метаданных)   -  person    schedule 22.09.2014
comment
(извините, случайно проголосовал за закрытие - прошу не обращать внимания)   -  person    schedule 22.09.2014


Ответы (1)


Как было предложено Уиллом в комментарии, я обнаружил, что Exception on ReadTimeout и WriteTimeout не является настоящей проблемой. Исключение было вызвано нулевым объектом в методе вызывающей стороны после кода, опубликованного выше. Ниже приведена точка, в которой было выброшено исключение: текущий объект был нулевым.

stream = client.DownloadFile(token);
if (stream != null)
{
    **WebOperationContext.Current.OutgoingResponse.ContentType = "text/octet-stream";** //HERE
    return stream;
}

Я удалил строку, и все было исправлено

person Cardella    schedule 23.09.2014