类1.4正式版教程与升级报告

类1.4正式版教程与升级报告

  [C#HttpHelper]类1.4正式版教程与升级报告

导读

1.升级报告

2.HttpHelper1.4正式版下载

3.HttpHelper类使用方法

4.最简单的Post与Get的写法

5.HttpHelper设置Header参考的方法

6.HttpHelper获取图片的方式

7.二次或多次使用Cookie的方式

8.使用URL编码的方式
                     
1.升级报告


1.方法 中不要使用类new object(){name=""};这样的方法,因为net2.0不支持
2.  if (response.StatusCode != null)无效,一直为True  ReEnter反映            

类1.4正式版教程与升级报告
if (response.StatusCode != null)无效,一直为True  ReEnter反映
                {
                    result.StatusCode = response.StatusCode;
                    result.StatusDescription = response.StatusDescription;
                }
类1.4正式版教程与升级报告

解决办法

类1.4正式版教程与升级报告
if (response != null)无效,一直为True  ReEnter反映
                {
                    result.StatusCode = response.StatusCode;
                    result.StatusDescription = response.StatusDescription;
                }无效,一直为True  ReEnter反映
类1.4正式版教程与升级报告

3.提出的问题
   添加属性ProtocolVersion 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。

4. 解决的问题需要添加属性
添加属性Expect100Continue获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true;否则为 false。默认值为 true。

4.多个证书添加的问题
添加属性ClentCertificates 可以添加多个证书文件

5.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;设置安全协议的版本。
增加到项目中,可直接设置属性 SecurityProtocolType
6. 

类1.4正式版教程与升级报告
Match meta = Regex.Match(Encoding.Default.GetString(RawResponse), "<meta([^<]*)charset=([^<]*)["']", RegexOptions.IgnoreCase);
                        string charter = (meta.Groups.Count > 2) ? meta.Groups[2].Value.ToLower() : string.Empty;
类1.4正式版教程与升级报告

应该是meta.Groups.Count > 1
7.post数据添加自由设置编码 只要设置属性HttpItem.PostEncoding就可以了
8.服务器提交了协议冲突. Section=ResponseHeader Detail=标头名称无效
9.增加Url编码与解码方法

类1.4正式版教程与升级报告
        /// <summary>
       /// 根据指定的编码对RUl进行解码
       /// </summary>
       /// <param name="text">要解码的字符串</param>
       /// <param name="encoding">要进行解码的编码方式</param>
       /// <returns></returns>
        public static string URLDecode(string text, Encoding encoding)
        {
            return HttpUtility.UrlDecode(text, encoding);
        }
        /// <summary>
        /// 根据指定的编码对URL进行编码
        /// </summary>
        /// <param name="text">要编码的URL</param>
        /// <param name="encoding">要进行编码的编码方式</param>
        /// <returns></returns>
        public static string URLEncode(string text, Encoding encoding)
        {
            return HttpUtility.UrlEncode(text, encoding);
       }
 
类1.4正式版教程与升级报告

2.HttpHelper1.4正式版下载


下载地址http://www.sufeinet.com/thread-3-1-1.html
在线测试工具:http://www.sufeinet.com/thread-3690-1-1.html
专用Cookie分析类http://www.sufeinet.com/thread-2382-1-1.html
要学习更多关于C# Http的请是看我的文章 C# HttpWebRequest 绝技
代码如下所示

HttpHelper源码

3.HttpHelper类使用方法

类1.4正式版教程与升级报告
 HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
                Timeout = 100000,//连接超时时间     可选项默认为100000
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
                Cookie = "",//字符串Cookie     可选项
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
                Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
                ContentType = "text/html",//返回类型    可选项有默认值
                Referer = "http://www.sufeinet.com",//来源URL     可选项
            };
            item.Header.Add("测试Key1", "测试Value1");
            item.Header.Add("测试Key2", "测试Value2");
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            string cookie = result.Cookie;
            //返回的Html内容
            string html = result.Html;
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
        
类1.4正式版教程与升级报告

本例子是一个统一的标准写法,大家可以根据需要自行修改,在下面还会有对特定功能的说明请大家继续看
4.最简单的Post与Get的写法

类1.4正式版教程与升级报告
 HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL这里都是测试     必需项
                Method = "get",//URL     可选项 默认为Get
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            item = new HttpItem()
           {
               URL = "http://tool.sufeinet.com",//URL这里都是测试URl   必需项
               Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
               //Encoding = Encoding.Default,
               Method = "post",//URL     可选项 默认为Get
               Postdata = "user=123123&pwd=1231313"
           };
            //得到新的HTML代码
            result = http.GetHtml(item);
类1.4正式版教程与升级报告

5.HttpHelper设置Header参考的方法

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                 //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
            };
            item.Header.Add("测试Key1", "测试Value1");
            item.Header.Add("测试Key2", "测试Value2");
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            string cookie = result.Cookie;
            //返回的Html内容
            string html = result.Html;
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
类1.4正式版教程与升级报告

下面我列出一些不能直接Add的参数
6.HttpHelper获取图片的方式

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                ResultType = ResultType.Byte
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
            //把得到的Byte转成图片
            Image img = byteArrayToImage(result.ResultByte);
        }

        /// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            using (MemoryStream ms = new MemoryStream(Bytes))
            {
                Image outputImg = Image.FromStream(ms);
                return outputImg;
            }
        }
类1.4正式版教程与升级报告

7.二次或多次使用Cookie的方式

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL这里都是测试     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            item = new HttpItem()
           {
               URL = "http://tool.sufeinet.com",//URL这里都是测试URl   必需项
               Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
               //Encoding = Encoding.Default,
               Method = "get",//URL     可选项 默认为Get
               Cookie = result.Cookie,
           };
            //得到新的HTML代码
            result = http.GetHtml(item);
类1.4正式版教程与升级报告

8.使用URL编码的方式

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = http.URLEncode("http://www.sufeinet.com", Encoding.UTF8),//URL编码    
            };
            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string url = http.URLDecode(html, Encoding.UTF8);//URL解码
            string cookie = result.Cookie;
类1.4正式版教程与升级报告

好了就这些,具体的大家可以在使用中提出来,我尽力为大家解决

如果您感觉还可以的话就给个评论或者是推荐吧。

 
 

  [C#HttpHelper]类1.4正式版教程与升级报告

导读

1.升级报告

2.HttpHelper1.4正式版下载

3.HttpHelper类使用方法

4.最简单的Post与Get的写法

5.HttpHelper设置Header参考的方法

6.HttpHelper获取图片的方式

7.二次或多次使用Cookie的方式

8.使用URL编码的方式
                     
1.升级报告


1.方法 中不要使用类new object(){name=""};这样的方法,因为net2.0不支持
2.  if (response.StatusCode != null)无效,一直为True  ReEnter反映            

类1.4正式版教程与升级报告
if (response.StatusCode != null)无效,一直为True  ReEnter反映
                {
                    result.StatusCode = response.StatusCode;
                    result.StatusDescription = response.StatusDescription;
                }
类1.4正式版教程与升级报告

解决办法

类1.4正式版教程与升级报告
if (response != null)无效,一直为True  ReEnter反映
                {
                    result.StatusCode = response.StatusCode;
                    result.StatusDescription = response.StatusDescription;
                }无效,一直为True  ReEnter反映
类1.4正式版教程与升级报告

3.提出的问题
   添加属性ProtocolVersion 获取或设置用于请求的 HTTP 版本。返回结果:用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11。

4. 解决的问题需要添加属性
添加属性Expect100Continue获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。如果 POST 请求需要 100-Continue 响应,则为 true;否则为 false。默认值为 true。

4.多个证书添加的问题
添加属性ClentCertificates 可以添加多个证书文件

5.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;设置安全协议的版本。
增加到项目中,可直接设置属性 SecurityProtocolType
6. 

类1.4正式版教程与升级报告
Match meta = Regex.Match(Encoding.Default.GetString(RawResponse), "<meta([^<]*)charset=([^<]*)["']", RegexOptions.IgnoreCase);
                        string charter = (meta.Groups.Count > 2) ? meta.Groups[2].Value.ToLower() : string.Empty;
类1.4正式版教程与升级报告

应该是meta.Groups.Count > 1
7.post数据添加自由设置编码 只要设置属性HttpItem.PostEncoding就可以了
8.服务器提交了协议冲突. Section=ResponseHeader Detail=标头名称无效
9.增加Url编码与解码方法

类1.4正式版教程与升级报告
        /// <summary>
       /// 根据指定的编码对RUl进行解码
       /// </summary>
       /// <param name="text">要解码的字符串</param>
       /// <param name="encoding">要进行解码的编码方式</param>
       /// <returns></returns>
        public static string URLDecode(string text, Encoding encoding)
        {
            return HttpUtility.UrlDecode(text, encoding);
        }
        /// <summary>
        /// 根据指定的编码对URL进行编码
        /// </summary>
        /// <param name="text">要编码的URL</param>
        /// <param name="encoding">要进行编码的编码方式</param>
        /// <returns></returns>
        public static string URLEncode(string text, Encoding encoding)
        {
            return HttpUtility.UrlEncode(text, encoding);
       }
 
类1.4正式版教程与升级报告

2.HttpHelper1.4正式版下载


下载地址http://www.sufeinet.com/thread-3-1-1.html
在线测试工具:http://www.sufeinet.com/thread-3690-1-1.html
专用Cookie分析类http://www.sufeinet.com/thread-2382-1-1.html
要学习更多关于C# Http的请是看我的文章 C# HttpWebRequest 绝技
代码如下所示

HttpHelper源码

3.HttpHelper类使用方法

类1.4正式版教程与升级报告
 HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
                Timeout = 100000,//连接超时时间     可选项默认为100000
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
                Cookie = "",//字符串Cookie     可选项
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
                Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
                ContentType = "text/html",//返回类型    可选项有默认值
                Referer = "http://www.sufeinet.com",//来源URL     可选项
            };
            item.Header.Add("测试Key1", "测试Value1");
            item.Header.Add("测试Key2", "测试Value2");
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            string cookie = result.Cookie;
            //返回的Html内容
            string html = result.Html;
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
        
类1.4正式版教程与升级报告

本例子是一个统一的标准写法,大家可以根据需要自行修改,在下面还会有对特定功能的说明请大家继续看
4.最简单的Post与Get的写法

类1.4正式版教程与升级报告
 HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL这里都是测试     必需项
                Method = "get",//URL     可选项 默认为Get
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            item = new HttpItem()
           {
               URL = "http://tool.sufeinet.com",//URL这里都是测试URl   必需项
               Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
               //Encoding = Encoding.Default,
               Method = "post",//URL     可选项 默认为Get
               Postdata = "user=123123&pwd=1231313"
           };
            //得到新的HTML代码
            result = http.GetHtml(item);
类1.4正式版教程与升级报告

5.HttpHelper设置Header参考的方法

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                 //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
            };
            item.Header.Add("测试Key1", "测试Value1");
            item.Header.Add("测试Key2", "测试Value2");
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            string cookie = result.Cookie;
            //返回的Html内容
            string html = result.Html;
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
类1.4正式版教程与升级报告

下面我列出一些不能直接Add的参数
6.HttpHelper获取图片的方式

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                ResultType = ResultType.Byte
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
            //把得到的Byte转成图片
            Image img = byteArrayToImage(result.ResultByte);
        }

        /// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            using (MemoryStream ms = new MemoryStream(Bytes))
            {
                Image outputImg = Image.FromStream(ms);
                return outputImg;
            }
        }
类1.4正式版教程与升级报告

7.二次或多次使用Cookie的方式

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL这里都是测试     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            item = new HttpItem()
           {
               URL = "http://tool.sufeinet.com",//URL这里都是测试URl   必需项
               Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
               //Encoding = Encoding.Default,
               Method = "get",//URL     可选项 默认为Get
               Cookie = result.Cookie,
           };
            //得到新的HTML代码
            result = http.GetHtml(item);
类1.4正式版教程与升级报告

8.使用URL编码的方式

类1.4正式版教程与升级报告
  HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = http.URLEncode("http://www.sufeinet.com", Encoding.UTF8),//URL编码    
            };
            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string url = http.URLDecode(html, Encoding.UTF8);//URL解码
            string cookie = result.Cookie;
类1.4正式版教程与升级报告

好了就这些,具体的大家可以在使用中提出来,我尽力为大家解决

如果您感觉还可以的话就给个评论或者是推荐吧。