实例详解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(); }