最近 做商城的一些订单 发货 库存同步 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  跟京东 一样畅通了。

 

 

 

posted on 2012-11-16 12:12  ywspace  阅读(825)  评论(0编辑  收藏  举报