usingNewtonsoft.Json;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.ComponentModel.DataAnnotations;usingSystem.IO;usingSystem.Net;usingSystem.Reflection;usingSystem.Text;namespaceTest
{classProgram
{static void Main(string[] args)
{string url = "http://www.baidus.com";string contentType = "application/x-www-form-urlencoded";int timeOut = 3000;string parms = "626";int encoding = 65001;
HttpWebRequest(url, parms, encoding, contentType, timeOut);
}public static void HttpWebRequest(string url, string parms, int encoding, string contentType = "application/x-www-form-urlencoded", int timeOut = 3000)
{try{string result = string.Empty;var mRequest =(HttpWebRequest)WebRequest.Create(url);//相应请求的参数
var data =Encoding.GetEncoding(encoding).GetBytes(parms);
mRequest.Method= "Post";
mRequest.ContentType=contentType;
mRequest.ContentLength=data.Length;
mRequest.Timeout=timeOut;
mRequest.KeepAlive= true;
mRequest.ProtocolVersion=HttpVersion.Version10;//请求流
var requestStream =mRequest.GetRequestStream();
requestStream.Write(data,0, data.Length);
requestStream.Close();//响应流
var mResponse = mRequest.GetResponse() as HttpWebResponse;//此位置进入catch(403)
var responseStream = mResponse.GetResponseStream();//
if (responseStream != null)
{var streamReader = newStreamReader(responseStream, Encoding.GetEncoding(encoding));//获取返回的信息
result =streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
}
}catch(System.Net.WebException ex)
{string result = string.Empty;//响应流
var mResponse = ex.Response asHttpWebResponse;var responseStream =mResponse.GetResponseStream();if (responseStream != null)
{var streamReader = newStreamReader(responseStream, Encoding.GetEncoding(encoding));//获取返回的信息
result =streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
}
result= "获取数据失败,请重试!" + url + ex.ToString() + "返回数据" +result;
}
}
}
}