httpRequest

根据给定的信息,本文将对`HttpHelps`类进行详细的解析,并重点介绍其实现HTTP访问的方法、原理以及具体的代码实现细节。 ### HttpHelps 类概述 `HttpHelps` 类是一个封装了HTTP请求功能的类,它支持通过POST或GET方式进行HTTP请求,并且能够处理直接访问、带有Cookie的访问、以及携带证书的访问等多种场景。此类的设计目标是简化HTTP通信过程中的复杂性,提供一个统一、灵活且易于使用的接口。 ### 类成员变量与属性 `HttpHelps` 类中包含了一系列用于配置和控制HTTP请求的成员变量和属性: 1. **RequestURL**:表示请求的目标URL。 2. **Encoding**:指定编码格式,用于处理请求和响应数据的字符编码。 3. **HttpWebRequest**:用于构建HTTP请求的.NET Framework类。 4. **HttpWebResponse**:用于获取服务器返回的响应结果。 5. **X509Certificate**:用于处理安全连接时所需的数字证书对象。 6. **Method**:表示HTTP请求方法,如GET、POST等。 7. **Accept**:指定客户端可接受的数据类型。 8. **ContentType**:指定发送到服务器的实体主体的媒体类型。 9. **UserAgent**:表示用户代理字符串,用于向服务器声明客户端的身份。 10. **CookieContainer**:用于存储和管理Cookie。 11. **ReturnData**:接收服务器返回的数据。 12. **StrPostData**:用于POST请求时传递的数据。 ### 方法实现 #### CheckValidationResult 方法 此方法用于验证SSL/TLS连接的安全性。在处理HTTPS请求时,如果需要验证服务器证书的有效性,则可以使用此方法来处理。 ```csharp private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { // 忽略所有错误,返回true表示接受任何证书 return true; } ``` #### Load 方法 该方法用于初始化HTTP请求的相关设置,如设置请求方法、Accept头部信息、Content-Type等。 ```csharp private void load() { // 设置请求方法为GET request.Method = "GET"; request.Accept = "text/html,application/xhtml+xml,*/*"; request.ContentType = "application/x-www-form-urlencoded"; } ``` #### GetHttpRequestData 方法 这是`HttpHelps`类的核心方法之一,负责执行HTTP请求并获取响应数据。 ```csharp private string GetHttpRequestData() { try { // 如果需要验证证书 if (objx509 != null) { // 注册自定义的证书验证回调方法 ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult); } // 创建请求 request = (HttpWebRequest)WebRequest.Create(RequestURl); // 如果需要验证证书 if (objx509 != null) request.ClientCertificates.Add(objx509); // 设置Cookie容器 if (cookie != null) request.CookieContainer = cookie; // 设置请求方法 if (Method.Trim().ToLower() == "post") { request.Method = "POST"; byte[] byteArray = Encoding.UTF8.GetBytes(strPostdata); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); } else { request.Method = "GET"; } // 发送请求并获取响应 response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string responseFromServer = reader.ReadToEnd(); reader.Close(); response.Close(); return responseFromServer; } catch (Exception ex) { // 处理异常 return ex.Message; } } ``` ### 总结 `HttpHelps`类提供了一种简洁的方式来进行HTTP请求操作,无论是GET还是POST,甚至是需要验证证书的安全请求,都可以通过这个类方便地完成。通过使用此类,开发者可以更加专注于业务逻辑的开发,而不需要过多关注HTTP通信的具体细节。












- dirigimarine2012-11-06挺不错的,正在学习httprequest呢
- lihao7112015-05-08这个也太简单了,总共2,3个方法,而且 没有考虑 释放资源 和 并发链接,值个免费。不值2分
- lgch1234562015-02-04很赞。!可以学习下

- 粉丝: 856
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大数据背景下国企管理思路创新.docx
- 软件设计方案师教程学习笔记(四).docx
- 区块链技术解析.docx
- 房建工程的项目管理与成本管理研究.docx
- 计算机与机械电子技术的融合发展思考.docx
- 互联网医保支付主要政策及行业发展进度分析报告.docx
- 商机直通车网络营销方案.doc
- 项目管理进度质量安全信息.doc
- 项目教学法在中职计算机教学中的运用研究.docx
- 大学设计PLC控制工业机械手.doc
- 热网换热站电热设备、工控机、网络外委维护范围及要求.doc
- 一种通用嵌入式控制平台的设计实现.docx
- 刍议责任会计应用于施工企业项目管理中的作用以及价值评析.docx
- 农村信息化建设背景下的乡村旅游电子商务推进模式.doc
- 计算机系统漏洞与安全防范技术研究.docx
- 网络技术应用选择题复习.ppt


