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