常用的Http工具函数集合
来源:互联网 发布:php 分类信息cms系统 编辑:程序博客网 时间:2024/05/21 22:41
/// <summary> /// 常用的Http工具函数集合 /// </summary> class HtmlTool { /// <summary> /// 模拟POST访问 /// </summary> /// <param name="postUrl">模拟POST的URL</param> /// <param name="postDataStr">需要POST的数据</param> /// <returns>模拟访问的网页源代码</returns> public static string sendPost(string postUrl, string postDataStr) { string retString = ""; if (Global.noException) { //用来存放cookie CookieContainer cookie = null; HttpWebRequest request = null; Stream myRequestStream = null; StreamWriter myStreamWriter = null; HttpWebResponse response = null; Stream myResponseStream = null; StreamReader myStreamReader = null; try { cookie = new CookieContainer(); //发送一个POST请求 request = (HttpWebRequest)WebRequest.Create(postUrl); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr); request.CookieContainer = cookie; myRequestStream = request.GetRequestStream(); myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312")); myStreamWriter.Write(postDataStr); //获取返回的内容 response = (HttpWebResponse)request.GetResponse(); response.Cookies = cookie.GetCookies(response.ResponseUri); myResponseStream = response.GetResponseStream(); myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); retString = myStreamReader.ReadToEnd(); } catch (Exception ex) { Global.noException = false; Console.Write("发送POST失败!\n报错:" + ex.Message); } finally { if (myStreamWriter != null) { myStreamWriter.Close(); } if (myStreamReader != null) { myStreamReader.Close(); } if (myResponseStream != null) { myResponseStream.Close(); } if (response != null) { response.Close(); }} } return retString; } /// <summary> /// 模拟GET访问 /// </summary> /// <param name="getUrl">模拟GET的URL</param> /// <returns>模拟访问的网页源代码</returns> public static string SendGet(string getUrl) { string retString = ""; if (Global.noException) { HttpWebRequest request = null; HttpWebResponse response = null; Stream myResponseStream = null; StreamReader myStreamReader = null; try { request = (HttpWebRequest)WebRequest.Create(getUrl); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; response = (HttpWebResponse)request.GetResponse(); myResponseStream = response.GetResponseStream(); myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); retString = myStreamReader.ReadToEnd(); } catch (Exception ex) { Global.noException = false; Console.Write("发送GET失败!\n报错:" + ex.Message); } finally { if (myStreamReader != null) { myStreamReader.Close(); } if (myResponseStream != null) { myResponseStream.Close(); } if (response != null) { response.Close(); } } } return retString; } /// <summary> /// 获取某个URL的重定向地址 /// </summary> /// <param name="getUrl">原始的地址</param> /// <returns>重定向之后的地址</returns> public static string GetRedirection(string getUrl) { if (Global.noException) { HttpWebRequest request = null; HttpWebResponse response = null; try { request = (HttpWebRequest)WebRequest.Create(getUrl); request.AllowAutoRedirect = false; request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; response = (HttpWebResponse)request.GetResponse(); if (response.Headers.Get("Location") == null) return ""; return response.Headers.Get("Location"); } catch (Exception ex) { Global.noException = false; Console.Write("获取重定向失败!报错:\n" + ex.Message); } finally { if (response != null) { response.Close(); } } } return ""; } /* * 在post的时候有时也用的到cookie * 所以在外部一个cookie属性随时保存 * CookieContainer cookie = new CookieContainer(); * 注意:有时候请求会重定向,但我们就需要从重定向url获取东西,可以用: * request.AllowAutoRedirect = false; * 设置重定向禁用,你就可以从headers的Location属性中获取重定向地址 */ }
0 0
- 常用的Http工具函数集合
- 常用的工具的集合
- java集合常用的工具类
- Android开发常用的工具类集合
- Jquery常用的工具函数
- 常用编程工具集合
- ASP编程常用的函数function集合
- matlab 常用集合相关的函数
- http数据拦截工具 集合
- 工具小函数集合
- PHP常用函数集合
- sql常用函数集合
- 常用辅助函数集合
- mysql常用函数集合
- 常用函数集合
- JS常用函数集合
- PHP常用函数集合
- 常用的安卓UI相关的工具集合
- 成为顶级投资者的五个习惯
- java文件读写操作指定编码格式
- C_C++软件工程师就业求职手册学习笔记---第四章
- ios Symbol(s) not found for architecture arm64
- 利用游标实现加工资
- 常用的Http工具函数集合
- Oracle开发专题之:%TYPE 和 %ROWTYPE
- html 、javascript、css言简意赅
- java 发送邮件
- jieba分词之——1、initialize & load_userdictr
- php ajax 简单应用
- 股票交易软件排行及简介
- 《JavaScript权威指南》----第15章 脚本化文档(2) 学习记录
- python模拟鼠标点击