您的位置:首页 > 理论基础 > 计算机网络

C#模拟http 发送POST或GET请求

2017-03-01 10:44 465 查看
 
1、POST:
  private string HttpPost(string Url, string postDataStr, CookieCollection cookies)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
            if (cookies != null)
            {
                request.CookieContainer = new CookieContainer();
                request.CookieContainer.Add(cookies);
            }

            Stream myRequestStream = request.GetRequestStream();
            StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
            myStreamWriter.Write(postDataStr);
            myStreamWriter.Close();
 
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 
            response.Cookies = cookie.GetCookies(response.ResponseUri);
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
 
            return retString;
        }

2、GET:
        public string HttpGet(string Url, string postDataStr)
        {
            HttpWebResponse response = null;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (string.IsNullOrEmpty(postDataStr) ? "" : "?")
+     postDataStr);
            request.Timeout = 30000; // 设置超时时间,单位毫秒。默认100000毫秒,100秒
            try
            {

            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";

            response = (HttpWebResponse)request.GetResponse();

            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();

                  myStreamReader.Close();

 myStreamReader.Dispose();

                  myResponseStream.Close();

                  myResponseStream.Dispose();

                  return retString ;
            } catch(Exception ex){
                Console.WriteLine(ex.ToString());
            } finally{
                if (response != null)

{

response.Close();

}

            }
            return "false";
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# http 请求 服务器端