关于 C# 请求 https 那点事

最近 做商城的一些订单 发货 库存同步 API 对接,无论是当当 、一号店 还是京东 都是很顺利的 都接通了。唯独 淘宝的API 跟我杠上了,事出:http 和  https  

 

淘宝和京东的2.0接口 都是 采用国际oauth2.0的协议,免去签名的校验。唯一不同的是  淘宝是使用https 而京东使用的是 http. 

http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

http的连接很简单,是无状态的,... HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。

所以用调用 HTTP方式 调用  HTTPS  是通不过的。

因此调用淘宝的API一直返回的是: 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

扯淡不多讲了 以下解决方法:


在你封装的 HttpUtil 中 添加一个方法:

 

private static bool CheckValidationResult(object sender,X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true;// 总是接受   这里只作简单演示
        }

  然后再 封装的 请求方法中 加入 如下代码:

 if (URL.StartsWith("https", StringComparison.OrdinalIgnoreCase))
   {
                    ServicePointManager.ServerCertificateValidationCallback =
                            new RemoteCertificateValidationCallback(CheckValidationResult);
  }

  OK ,完工。此时 调用淘宝的 API  跟京东 一样畅通了。

 

 

 

转载于:https://www.cnblogs.com/ywspace/archive/2012/11/16/2773006.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值