码迷,mamicode.com
首页 > Web开发 > 详细

.net后台模拟浏览器get/post请求

时间:2016-06-25 06:12:02      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

     #region 后台模拟浏览器get/post请求
        /// <summary>
        /// 发送请求方式
        /// </summary>
        /// <param name="url">请求Url</param>
        /// <param name="para">请求参数</param>
        /// <param name="method">请求方式GET/POST</param>
        /// <returns></returns>
        public static string SendRequest(string url, string para, string method)
        {
            string strResult = "";
            if (url == null || url == "")
                return null;
            if (method == null || method == "")
                method = "GET";
// GET方式 if (method.ToUpper() == "GET") { try { System.Net.WebRequest wrq = System.Net.WebRequest.Create(url + para); wrq.Method = "GET"; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; System.Net.WebResponse wrp = wrq.GetResponse(); System.IO.StreamReader sr = new System.IO.StreamReader(wrp.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8")); strResult = sr.ReadToEnd(); } catch (Exception ex) { return ex.Message; } }
// POST方式 if (method.ToUpper() == "POST") { if (para.Length > 0 && para.IndexOf(?) == 0) { para = para.Substring(1); } WebRequest req = WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; StringBuilder UrlEncoded = new StringBuilder(); Char[] reserved = { ?, =, & }; byte[] SomeBytes = null; if (para != null) { int i = 0, j; while (i < para.Length) { j = para.IndexOfAny(reserved, i); if (j == -1) { UrlEncoded.Append(HttpUtility.UrlEncode(para.Substring(i, para.Length - i), System.Text.Encoding.GetEncoding("utf-8"))); break; } UrlEncoded.Append(HttpUtility.UrlEncode(para.Substring(i, j - i), System.Text.Encoding.GetEncoding("utf-8"))); UrlEncoded.Append(para.Substring(j, 1)); i = j + 1; } SomeBytes = Encoding.Default.GetBytes(UrlEncoded.ToString()); req.ContentLength = SomeBytes.Length; Stream newStream = req.GetRequestStream(); newStream.Write(SomeBytes, 0, SomeBytes.Length); newStream.Close(); } else { req.ContentLength = 0; } try { WebResponse result = req.GetResponse(); Stream ReceiveStream = result.GetResponseStream(); Byte[] read = new Byte[512]; int bytes = ReceiveStream.Read(read, 0, 512); while (bytes > 0) {// 如果内容以 ANSI 代码页形式 // Encoding encode = System.Text.Encoding.GetEncoding("shift-jis"); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); strResult += encode.GetString(read, 0, bytes); bytes = ReceiveStream.Read(read, 0, 512); } return strResult; } catch (Exception ex) { return ex.Message; } } return strResult; } #endregion

public static string SendRequest(string url, string para) { return SendRequest(url, para, "GET"); }

 

.net后台模拟浏览器get/post请求

标签:

原文地址:http://www.cnblogs.com/ericli-ericli/p/5615659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!