如何使用CakePHP的HttpSocket连接到安全URL

时间:2014-03-22 15:52:06

标签: cakephp foursquare

我正在尝试使用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)?

1 个答案:

答案 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)