欢乐捕鱼之海底极乐

蘇飛論壇

 找回密碼
 馬上注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

分布式系統框架(V2.0) 輕松承載百億數據,千萬流量!討論專區 - 源碼下載 - 官方教程

HttpHelper萬能框架(V2.3-含.netcore) HttpHelper官方出品,無敵框架討論區 - 源碼下載 - 在線測試和代碼生成

HttpHelper爬蟲類(V2.0) 最牛的爬蟲類,沒有爬不到只有想不到 源碼 - 代碼生成器 - 討論區 - 教程- 例子

查看: 9264|回復: 9
打印 上一主題 下一主題

[教程] 【HttpHelper萬能框架教程】- 帶有證書的網站請求方法

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2014-9-9 20:12:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
導讀部分

【HttpHelper萬能框架】教程目錄貼  http://www.gtcwi.tw/thread-9989-1-1.html


教程部分


證書主要是針對Https類型網站使用的。證書分為兩種一種是帶密碼的一種是不帶密碼的。這里一并介紹。使用萬能框架對普通證書的驗證只需要設置一個證書的正確格式就行了,不需要專門的網站證書,這也就無視證書的地方

你不需要獲取到證書,或者獲取到密碼,而是只需要隨便找一個正常格式的證書就可以解決這個問題。
下面我提供一個證書文件讓大家測試使用 123.zip (694 Bytes, 下載次數: 550)
解壓之后可以正常使用。

第一種只設置一個證書。方法如下
[C#] 純文本查看 復制代碼
            //創建Httphelper對象
            HttpHelper http = new HttpHelper();
            //創建Httphelper參數對象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.gtcwi.tw",//URL     必需項    
                Method = "get",//URL     可選項 默認為Get   
                ContentType = "text/html",//返回類型    可選項有默認值   
                CerPath = "D:\\123.cer"
            };

            //請求的返回值對象
            HttpResult result = http.GetHtml(item);
            //獲取請請求的Html
            string html = result.Html;
            //獲取請求的Cookie
            string cookie = result.Cookie;



第二種是帶多個證書的例子
[C#] 純文本查看 復制代碼
            //創建Httphelper對象
            HttpHelper http = new HttpHelper();
            //創建Httphelper參數對象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.gtcwi.tw",//URL     必需項    
                Method = "get",//URL     可選項 默認為Get   
                ContentType = "text/html",//返回類型    可選項有默認值   
            };
            item.ClentCertificates = new X509CertificateCollection();
            //配置多個證書在這里設置
            item.ClentCertificates.Add(new X509Certificate("d:\\123.cer"));

            //配置多個證書在這里設置
            item.ClentCertificates.Add(new X509Certificate("d:\\456.cer"));

            //請求的返回值對象
            HttpResult result = http.GetHtml(item);
            //獲取請請求的Html
            string html = result.Html;
            //獲取請求的Cookie
            string cookie = result.Cookie;


第三是設置帶有密碼的證書文件

[C#] 純文本查看 復制代碼
  //創建Httphelper對象
            HttpHelper http = new HttpHelper();
            //創建Httphelper參數對象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.gtcwi.tw",//URL     必需項    
                Method = "get",//URL     可選項 默認為Get   
                ContentType = "text/html",//返回類型    可選項有默認值   
            };
            item.ClentCertificates = new X509CertificateCollection();
            //配置多個證書在這里設置
            item.ClentCertificates.Add(new X509Certificate("d:\\123.cer","123456"));

            //配置多個證書在這里設置
            item.ClentCertificates.Add(new X509Certificate("d:\\456.cer"));

            //請求的返回值對象
            HttpResult result = http.GetHtml(item);
            //獲取請請求的Html
            string html = result.Html;
            //獲取請求的Cookie
            string cookie = result.Cookie;

基本上就這三種,大家根據自己需要配置吧。


提供一個提取證書的例子:http://www.gtcwi.tw/thread-4270-1-1.html
沙發
發表于 2014-9-12 13:45:05 | 只看該作者
板凳
發表于 2014-10-17 09:48:13 | 只看該作者
地板
發表于 2015-10-26 15:06:56 | 只看該作者
5
發表于 2015-12-30 09:37:59 | 只看該作者
6
發表于 2016-1-6 14:05:09 | 只看該作者
7
發表于 2016-2-2 15:06:14 | 只看該作者
8
發表于 2017-8-10 09:15:59 | 只看該作者
9
發表于 2019-11-12 11:45:18 | 只看該作者
@作者,請問調用https的時候,為什么一定要指定證書路徑呢,大部分情況下是不需要用到本地證書文件的
bool flag = item.URL.StartsWith("https", StringComparison.CurrentCultureIgnoreCase);
if (flag) ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(this.CheckValidationResult);
如果用url來判斷的話是不是有什么不妥,望解答!
10
 樓主| 發表于 2019-11-12 11:51:27 | 只看該作者
您需要登錄后才可以回帖 登錄 | 馬上注冊

本版積分規則

QQ|手機版|小黑屋|手機版|聯系我們|關于我們|廣告合作|蘇飛論壇 ( 豫ICP備17001017號-1)

GMT+8, 2019-12-8 10:57

© 2017-2018

快速回復 返回頂部 返回列表
欢乐捕鱼之海底极乐 快乐10分钟技巧1拖4 羽毛球灯光 网络捕鱼赚人民币 上海天天彩选四走势图 扫雷娱乐棋牌 nba分析 体育彩票超级大乐透开奖结果 河北风采好运彩3 云南11选5开奖查询今天 规则