使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。

使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。
理论上支持任何HTTP 1.1 协议谓词,不过就实际使用情况来说,仅对GET/POST方式进行了测试,其他谓词并未测试。
/// 
/// 使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。
/// 
/// 要访问的URL地址
/// 
/// 任何HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或OPTIONS。
/// 页面使用的编码
/// 
  
  
   
   
/// 
   
   
    
    
/// 
   
   
  
  请注意:
/// 
  
  
  1. ///
  2. 中如果有中文,则需要使用Uri.EscapeDataString(string)
    /// 或Uri.EscapeUriString(string) 进行对应转换。
  3. ///
  4. 理论上支持任何HTTP 1.1 协议谓词,不过就实际使用情况来说,仅对GET/POST方式进行了测试,
    /// 其他谓词并未测试。
  5. ///
/// /// ///
public static string GetWebRequest(string url, string queryString, string method, Encoding encoding) { if (!IsUrl(url)) { throw new ArgumentException("网络地址无效!", "urlHead"); } if (!IsMethodOk(method)) { throw new ArgumentException("Http协议谓词无效!", "method"); } string html = string.Empty; string fullUrl; if (url.Contains("?")) { fullUrl = url + "&" + queryString; } else { fullUrl = url + "?" + queryString; } try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(fullUrl); request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"; request.Method = method; if (method == "POST") { byte[] data = encoding.GetBytes(queryString); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; using (Stream reqStream = request.GetRequestStream()) { reqStream.Write(data, 0, data.Length); reqStream.Close(); } } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { if (response != null) { if (response.StatusCode == HttpStatusCode.OK && request.HaveResponse) { using (StreamReader sr = new StreamReader(response.GetResponseStream(), encoding)) { if (sr != null) { html = sr.ReadToEnd(); } } } response.Close(); } } } catch (Exception ex) { html = ex.ToString(); } return html; }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值