zoukankan      html  css  js  c++  java
  • WIn7 下使用 NetHttpClient 请求HTPPS 网站

    在WIN7 下使用 HttpClient 会报以下两种错 ;
    1 Server Certificate Invalid or not present
    2 Error sending data: (12175) 发生了安全错误.

    3 System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。

    经查询资料是因为WIn7 默认不支持这个协议
    详细见:
    https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

    解决方法:

    指定 HttpClient.SecureProtocols  为TLS12

    代码:

    procedure TForm2.Button1Click(Sender: TObject);
    var
      str:string;
      ss:TStringStream;//TStreamstring
     begin
       try
        ss:=TStringStream.Create();
        //WIN 7 下使用 需要 指定 默认的协议TLS12
       http.SecureProtocols:=[THTTPSecureProtocol.TLS12];
        http.Get(url,ss);
        memo1.Text:=ss.DataString;
       finally
          ss.Free;
       end;
    end;
    View Code
       private void button1_Click(object sender, EventArgs e)
            {
                //ServicePointManager.ServerCertificateValidationCallback =
                //    new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
                string data;
                HttpClient http = new HttpClient();
                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                HttpResponseMessage response = http.GetAsync("https://kindao1.github.io/LimitTW/").Result;
                textBox1.AppendText(response.ToString()+"
    ");
                var re = response.Content.ReadAsStringAsync();
                data =re.Result;
                textBox1.AppendText(data);
            }
    C# 代码
  • 相关阅读:
    java7或java8新特性
    反射中,Class.forName和ClassLoader区别
    &和&&的区别
    JAVA时区问题总结
    索引失效原因及解决索引失效方法
    索引失效的7种情况
    MySQL Explain详解
    java switch
    java 生成注释文档
    spring 获取配置文件的值
  • 原文地址:https://www.cnblogs.com/stroll/p/12987796.html
Copyright © 2011-2022 走看看