调用wcf 得不到HttpWebResponse.ContentLength的长度
2016-07-14 10:53
585 查看
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); } } }
--
相关文章推荐
- Android 判断用户2G/3G/4G移动数据网络
- HTTP请求中的缓存(cache)机制
- HTTP通信机制
- 理解HTTP session原理及应用
- HTTP请求响应机制
- 四层和七层负载均衡的区别
- URLConnection 和HttpURLConnection
- Http协议的Delete
- 自研究网络通信库
- Android网络请求框架NoHttp简介
- Android网络请求框架NoHttp简介
- weblogic部署异常: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>
- 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数
- 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数
- [置顶] Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide五大Android开源组件加载网络图片的优缺点比较
- curl命令
- xmlns:android="http://schemas.android.com/apk/res/android"
- http://love3400wind.blog.163.com/blog/static/7963080120132794359703/
- Android最流行的网络框架
- 解决:Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle