实例详解C#实现http不同方法的请求
1、不带参数的POST请求
publicstaticstringPost(stringurl)
{
stringresult="";
HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);
req.Method="POST";
HttpWebResponseresp=(HttpWebResponse)req.GetResponse();
Streamstream=resp.GetResponseStream();
//获取内容
using(StreamReaderreader=newStreamReader(stream,Encoding.UTF8))
{
result=reader.ReadToEnd();
}
returnresult;
}
2、带参数的POST请求
publicstaticstringPost(stringurl,Dictionarydic) { stringresult=""; HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url); req.Method="POST"; req.ContentType="application/x-www-form-urlencoded"; #region添加Post参数 StringBuilderbuilder=newStringBuilder(); inti=0; foreach(varitemindic) { if(i>0) builder.Append("&"); builder.AppendFormat("{0}={1}",item.Key,item.Value); i++; } byte[]data=Encoding.UTF8.GetBytes(builder.ToString()); req.ContentLength=data.Length; using(StreamreqStream=req.GetRequestStream()) { reqStream.Write(data,0,data.Length); reqStream.Close(); } #endregion HttpWebResponseresp=(HttpWebResponse)req.GetResponse(); Streamstream=resp.GetResponseStream(); //获取响应内容 using(StreamReaderreader=newStreamReader(stream,Encoding.UTF8)) { result=reader.ReadToEnd(); } returnresult; }
3、不带参数的GET请求
publicstaticstringGet(stringurl)
{
stringresult="";
HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);
HttpWebResponseresp=(HttpWebResponse)req.GetResponse();
Streamstream=resp.GetResponseStream();
try
{
//获取内容
using(StreamReaderreader=newStreamReader(stream))
{
result=reader.ReadToEnd();
}
}
finally
{
stream.Close();
}
returnresult;
}
4、带参数的GET请求
publicstaticstringGet(stringurl,Dictionarydic) { stringresult=""; StringBuilderbuilder=newStringBuilder(); builder.Append(url); if(dic.Count>0) { builder.Append("?"); inti=0; foreach(varitemindic) { if(i>0) builder.Append("&"); builder.AppendFormat("{0}={1}",item.Key,item.Value); i++; } } HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(builder.ToString()); //添加参数 HttpWebResponseresp=(HttpWebResponse)req.GetResponse(); Streamstream=resp.GetResponseStream(); try { //获取内容 using(StreamReaderreader=newStreamReader(stream)) { result=reader.ReadToEnd(); } } finally { stream.Close(); } returnresult; }
5、自定义HTTP请求头
HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);
req.Method="GET";
req.Headers["Accept-Language"]="zh-CN,zh;q=0.8";
req.Referer="https://www.baidu.com/";
HttpWebResponseresp=(HttpWebResponse)req.GetResponse();
Streamstream=resp.GetResponseStream();stringresult="";//注意,此处使用的编码是:gb2312//using(StreamReaderreader=newStreamReader(stream,Encoding.Default))using(StreamReaderreader=newStreamReader(stream,Encoding.GetEncoding("gb2312")))
{
result=reader.ReadToEnd();
}