后台请求数据的几个实例(含获取数据的压缩方式的处理)
2015-09-02 21:44
661 查看
string url = "http://gps.cn/api/"; string param = HttpContext.Current.Request.Url.Query; url = url + param; HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; //request.Method = "GET"; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.CookieContainer = new CookieContainer(); //request.CookieContainer.Add(new Cookie("ASP.NET_SessionId", "bqf4jp55tspvuy55ayo3gb45", "", "gps.zto.cn")); request.CookieContainer.Add(new Cookie("ASP.NET_SessionId", ASPNET_SessionValue, "", "gps.cn")); request.CookieContainer.Add(new Cookie("Hm_lvt_d796fdb8c57000115377e0cc55ab56f0", "1414852427", "", "gps.cn")); request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; request.Connection = "KeepAlive"; request.Headers["Accept-Encoding"] = "gzip, deflate"; request.Headers["Accept-Language"] = "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"; request.Host = "gps.zto.cn"; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"; //System.Net.WebProxy proxy = new WebProxy("8.7.16.16", 80); //request.Proxy = proxy; //获取post来的数据再发送 byte[] data = Request.BinaryRead(Request.TotalBytes); request.ContentLength = data.Length; Stream newStream = request.GetRequestStream(); //string source = Encoding.UTF8.GetString(input); // 发送数据 newStream.Write(data, 0, data.Length); newStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = null; if ("gzip".Equals(response.ContentEncoding)) { responseStream = new System.IO.Compression.GZipStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress); } else if ("deflate".Equals(response.ContentEncoding)) { responseStream = new System.IO.Compression.DeflateStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress); } else { responseStream = response.GetResponseStream(); } if (responseStream != null) { result = new StreamReader(responseStream, Encoding.GetEncoding(response.CharacterSet)).ReadToEnd().ToString(); }
string url = "http://gps.cn/map"; string param = HttpContext.Current.Request.Url.Query; url = url + param; HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "GET"; request.CookieContainer = new CookieContainer(); //request.CookieContainer.Add(new Cookie("ASP.NET_SessionId", "bqf4jp55tspvuy55ayo3gb45", "", "gps.zto.cn")); request.CookieContainer.Add(new Cookie("ASP.NET_SessionId", ASPNET_SessionValue, "", "gps.cn")); request.CookieContainer.Add(new Cookie("Hm_lvt_d796fdb8c57000115377e0cc55ab56f0", "1414852427", "", "gps.cn")); request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; request.Connection = "KeepAlive"; request.Headers["Accept-Encoding"] = "gzip, deflate"; request.Headers["Accept-Language"] = "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"; request.Host = "gps.cn"; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"; //System.Net.WebProxy proxy = new WebProxy("8.7.16.16", 80); //request.Proxy = proxy; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = null; string result = string.Empty; if ("gzip".Equals(response.ContentEncoding)) { responseStream = new System.IO.Compression.GZipStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress); } else if ("deflate".Equals(response.ContentEncoding)) { responseStream = new System.IO.Compression.DeflateStream(response.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress); } else { responseStream = response.GetResponseStream(); } if (responseStream != null) { result = new StreamReader(responseStream, Encoding.GetEncoding(response.CharacterSet)).ReadToEnd().ToString(); }
相关文章推荐
- HDOJ 题目3911 Black And White(线段树区间异或区间合并)
- 数学专题小结:FFT算法
- [CV研究探讨] 计算机视觉三大顶级国际会议
- [Leetcode] 主元问题
- VMware Worksataion系统关闭然后开启---系统会出现红叉
- 标签的语法
- JAVA反射修改常量,以及其局限(修改private final限制)
- LA_3602_DNAConsensusString
- MVC 部署出现错误未能写入输出文件xxxxxxx.
- MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程
- C++中#include <climits>
- 开发一个安全的小网站(一)安全要素
- UI高级中关于Block的语法介绍
- linux-vim详解
- Hadoop/spark安装实战(系列篇1)准备安装包
- 丑数
- BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )
- poj1651
- SharedPreference使用指导
- C++类构造函数初始化列表