- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net;
- using System.IO;
- namespace WeixinPrinter
- {
- class HttpTool
- {
- /// <summary>
- /// 模拟POST访问
- /// </summary>
- /// <param name="postUrl">模拟POST的URL</param>
- /// <param name="postDataStr">需要POST的数据</param>
- /// <returns>模拟访问的网页源代码</returns>
- public static string sendPost(string postUrl, string postDataStr)
- {
- System.Net.ServicePointManager.DefaultConnectionLimit = 100;
- System.Net.ServicePointManager.Expect100Continue = false;
- //用来存放cookie
- CookieContainer cookie = null;
- HttpwebRequest request = null;
- Stream myRequestStream = null;
- HttpWebResponse response = null;
- Stream myResponseStream = null;
- StreamReader myStreamReader = null;
- try
- {
- //转化
- byte[] byteArray = Encoding.UTF8.GetBytes(postDataStr);
- cookie = new CookieContainer();
- //发送一个POST请求
- request = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
- request.CookieContainer = cookie;
- request.Timeout = 3000;
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.ContentLength = byteArray.Length;
- myRequestStream = request.GetRequestStream();
- myRequestStream.Write(byteArray, 0, byteArray.Length);
- myRequestStream.Close();
- //获取返回的内容
- response = (HttpWebResponse)request.GetResponse();
- response.Cookies = cookie.GetCookies(response.ResponseUri);
- myResponseStream = response.GetResponseStream();
- myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
- return myStreamReader.ReadToEnd();
- }
- catch (Exception ex)
- {
- Console.WriteLine("postUrl = " + postUrl + " Exception" + ex);
- }
- finally
- {
- if (myStreamReader != null)
- {
- myStreamReader.Close();
- }
- if (myResponseStream != null)
- {
- myResponseStream.Close();
- }
- if (response != null)
- {
- response.Close();
- }
- if (request != null)
- {
- request.Abort();
- }
- }
- return "";
- }
- /// <summary>
- /// 模拟GET访问
- /// </summary>
- /// <param name="getUrl">模拟GET的URL</param>
- /// <returns>模拟访问的网页源代码</returns>
- public static string SendGet(string getUrl)
- {
- System.Net.ServicePointManager.DefaultConnectionLimit = 100;
- 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";
- request.Timeout = 3000;
- response = (HttpWebResponse)request.GetResponse();
- myResponseStream = response.GetResponseStream();
- myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
- return myStreamReader.ReadToEnd();
- }
- catch (Exception ex)
- {
- Console.WriteLine("getUrl = " + getUrl + " Exception" + ex);
- }
- finally
- {
- if (myStreamReader != null)
- {
- myStreamReader.Close();
- }
- if (myResponseStream != null)
- {
- myResponseStream.Close();
- }
- if (response != null)
- {
- response.Close();
- }
- if (request != null)
- {
- request.Abort();
- }
- }
- return "";
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/0501201614358.html
来源: http://www.codesnippet.cn/detail/0501201614358.html