我正在尝试使用CakePHP的HttpSocket连接到Foursquare的API,特别是场地搜索端点(https://developer.foursquare.com/docs/venues/explore)。如您所见,Foursquare的API通过HTTPS访问,因此我在控制器中添加了以下内容:
$httpSocket = new HttpSocket();
$results = $httpSocket->get('https://api.foursquare.com/v2/venues/search', array(
'query' => $query
));
但是,这会引发以下错误:
stream_socket_client():对等证书CN =' * .a.ssl.fastly.net'不符合预期的CN =' api.foursquare.com' stream_socket_client():无法启用crypto stream_socket_client():无法连接到ssl://api.foursquare.com:443(未知错误)
如何使用CakePHP的HttpSocket连接到安全URL(尤其是Foursquare)?
答案 0 :(得分:3)
响应表明SSL证书foursquare有另一个域(他们的CDN),您需要使用CDN域直接连接到API,或者忽略证书是针对错误主机的事实。
有关处理SSL证书的部分介绍了如何忽略不正确的主机:http://book.cakephp.org/2.0/en/core-utility-libraries/httpsocket.html#handling-ssl-certificates(ssl_verify_host)