0

我有一个 WCF 服务返回字节 [] 数据。我如何在客户端读取这些数据

using GetrResponseStream();

HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
if (resp.StatusCode == HttpStatusCode.OK)
{
     Stream responseStream = resp.GetResponseStream();
     if (responseStream != null)
     {
         var reader = new StreamReader(responseStream, Encoding.UTF8);
         string dataString = reader.ReadToEnd();
     }
}

使用此代码我得到

dataString ={"[255,34,56,778,3,54,6,8,9,90,0,87,6,.....]"} 

但我想byte[]由那个 WCF 服务返回,即我想要

byte[] dataString =[255,34,56,778,3,54,6,8,9,90,0,87,6,.....];
4

2 回答 2

4
var memoryStream = new MemoryStream();
responseStream.CopyTo(memoryStream);
return memoryStream.ToArray();
于 2012-04-24T07:44:30.327 回答
0

StreamReader主要用于读取文本数据,你可以使用StreamGetByte来读取你的响应byte[]。请看下面的代码:

HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
if (resp.StatusCode == HttpStatusCode.OK)
{
     using (Stream responseStream = resp.GetResponseStream())
     {
          /// you'll have your response in this variable
          var buffer = new byte[responseStream.Length];
          long bytesRemaining = responseStream.Length;
          int bytesRead = 0;

          while (bytesRemaining > 0)
          {
              int readCount = stream.Read(buffer, bytesRead, 1024);

              bytesRead += readCount;
              bytesRemaining -= readCount;
          }
     }
}
于 2012-04-24T08:01:57.233 回答