Я работаю с услугой RESTful WCF. Один из методов службы возвращает байт [] (который содержит файл).Restful WCF Service - возвращаемый байт []?
На стороне клиента у меня есть код, который использует класс WebRequest для вызова этого конкретного метода службы. Используя WebRequest, я получаю поток ответа, как:
Stream stream = webReq.GetResponse().GetResponseStream();
Из этого потока, я затем реконструировать байт [], а затем выводит файл локально. Проблема в том, что восстановленный файл на стороне клиента не похож на файл, который был возвращен со стороны службы (я получаю поврежденный PDF-файл, размер которого намного больше размера, чем тот, который был отправлен со стороны службы). Перед тем, как метод службы вернет байт [], я вывел этот байт [] на диск со стороны службы, и он создал файл в порядке ... Это указывает на то, что происходит неправильный способ возврата байта [] и моей клиентской стороны реконструкции Byte [] из потока на стороне клиента ... восстановить байт [] из потока, я использую следующий метод, который кто-то писал в прошлом на StackOverflow:
public static byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16*1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
Любые идеи что может пойти не так?
Можете ли вы разместить скелет своего сервиса и конфигурацию из файла конфигурации для службы? – Rajesh