2 回答
TA贡献1811条经验 获得超4个赞
如果您想在 CURL 中使用 SSL,您应该从以下位置获取根证书:https : //curl.haxx.se/docs/caextract.html
只需使用内容顶部的链接下载 cacert.pm.. 并告诉在连接到 SSL 时使用哪个证书。这设置了一个适当的连接(一个实际安全的连接,反对使用 ssl_verifyer 为 false...)
我有资格的猜测是,您要连接的服务器可能没有将任何传入请求设置为有效(通过称为 CORS(访问控制允许源)的东西)。如果您想从中www.yourdomain.com进行连接,则他们必须设置www.yourdomain.com对传入请求有效的设置。
我已经测试了以下代码适用的其他域,因此您必须与 g2a.com 的所有者交谈才能处理此问题(这是服务器问题,而不仅仅是代码问题)
<?php
$g2a = 'https://www.g2a.com';
//Tell cURL where our certificate bundle is located.
//an absolute path to your downloaded pem-file:
$certificate = "C:\wamp\www\stackoverflow\cacert.pem";
try{
// initiate curl (used to request data from other webpages)
$ch = curl_init();
// will return the response, if false it prints the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CAINFO, $certificate);
curl_setopt($ch, CURLOPT_CAPATH, $certificate);
// set the url, eliminates headers from response
curl_setopt($ch, CURLOPT_URL, ($g2a) );
curl_setopt($ch, CURLOPT_HEADER, true);
// execute
$result=curl_exec($ch);
//if some error occurs
if (!$result)
throw new Exception(curl_error($ch), curl_errno($ch));
// Closing
curl_close($ch);
} catch(Exception $e) {
trigger_error(sprintf('Curl failed with error #%d: %s', $e->getCode(), $e-
>getMessage()), E_USER_ERROR);
}
var_dump($result);
//converts json to associative array
$result=json_decode($result, true);
- 2 回答
- 0 关注
- 251 浏览
添加回答
举报