HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create(strUrl); wreq.Timeout = _httpTimeout * 1000; wreq.ReadWriteTimeout = _httpTimeout * 1000; wreq.Method = "POST"; wreq.ContentType = "application/json;charset=utf-8"; wreq.ContentLength = data.Length; using (Stream putStream = wreq.GetRequestStream()) { putStream.Write(data, 0, data.Length); } var resp = wreq.GetResponse() as HttpWebResponse; string rst = string.Empty; using (Stream putStream = resp.GetResponseStream()) { StreamReader sr = new StreamReader(putStream); rst = sr.ReadToEnd(); }
--way 2,stream 转 byte[] :
byte[] by = new byte[800]; int size = 1024; int read = 0; using (MemoryStream ms = new MemoryStream()) { byte[] buffer = new byte[size]; do { read = stream.Read(buffer, 0, size); ms.Write(buffer, 0, read); } while (read > 0); by = ms.ToArray(); }
stream 转 byte[] ,这个方法也可以:
public byte[] ReadFully (Stream stream) { // 初始化一个32k的缓存 byte[] buffer = new byte[32768]; using (MemoryStream ms = new MemoryStream()) { //返回结果后会自动回收调用该对象的Dispose方法释放内存 // 不停的读取 while (true) { int read = stream.Read(buffer, 0, buffer.Length); // 直到读取完最后的3M数据就可以返回结果了 if (read <= 0) return ms.ToArray(); ms.Write(buffer, 0, read); } } }
--