解決12306.cn網站驗證碼獲取提示“基礎連接已經關閉: 未能為 SSL/TLS 安全通道建立信任關系“的問題



https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368

這是圖片的訪問網址

大家看清楚了,是Https的網站,也就是說是需要證書才能訪問了,這個只要獲取證書就行了,方法如下
先直接在瀏覽器輸入這個網站然后回車



然后再單擊如下圖片位置



會出現如下界面



我我選擇詳細信息里面的 復制到文件



在下一步之后選擇第二項目,就是Base64編碼



給證書選擇一個存放的位置這也是一會兒寫代碼時需要的位置



然后下一步單擊完成就行了



看到這個時表示你成功了。
使用我的Httphelper的代碼如下

/// <summary>
/// 字節數組生成圖片
/// </summary>
/// <param name="Bytes">字節數組</param>
/// <returns>圖片</returns>
private Image byteArrayToImage(byte[] Bytes)
{
    MemoryStream ms = new MemoryStream(Bytes);
 
    Image outputImg = Image.FromStream(ms);
    return outputImg;
 
}
 
private void Form1_Load(object sender, EventArgs e)
{
    HttpHelper http = new HttpHelper();
    HttpItem item = new HttpItem()
    {
        URL = "https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368",//URL     必需項    
        Method = "get",//URL     可選項 默認為Get   
        CerPath = "D:\\123.cer",//證書絕對路徑     可選項不需要證書時可以不寫這個參數      
        ResultType = ResultType.Byte
    };
    HttpResult result = http.GetHtml(item);
    //獲取到的圖片
    Image im = byteArrayToImage(result.ResultByte);
    pictureBox1.Image = im;
}

執行效果如下



呵呵到這里問題就解決了。

大家感覺可以的話給推薦一下吧 或者給點建議也可以。非常感謝!

這上面是教大家怎么樣使用Https網站的證書,如果單純的說這個12306的網站是不需要的,因為他可以通過Http直接訪問

http://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368

就是上面的地址也是一樣可以訪問的。呵呵

原文地址:http://www.sufeinet.com/thread-4270-1-1.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM