首页 文章

将cURL命令行转换为PHP cURL

提问于
浏览
5

我需要将此cURL命令转换为PHP cURL代码:

curl --get'https://api.twitter.com/1/followers/ids.json'--data
'cursor = -1&screen_name = somename'--header'授权:OAuth
oauth_consumer_key =“key”,oauth_nonce =“nonce”,
oauth_signature =“signature”,oauth_signature_method =“HMAC-SHA1”,
oauth_timestamp =“timestamp”,oauth_token =“token”,oauth_version =“1.0”'
--verbose

我试过这个,但它似乎不起作用:

> $ch = curl_init();
> curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth oauth_consumer_key="key", oauth_nonce="nonce", oauth_signature="signature", oauth_signature_method="HMAC-SHA1", oauth_timestamp="timestamp", oauth_token="token", oauth_version="1.0"'));
> curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
> curl_setopt($ch, CURLOPT_VERBOSE, 1);
> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
> curl_setopt($ch, CURLOPT_HTTPGET, 1);
> curl_setopt($ch, CURLOPT_URL, 'https://api.twitter.com/1/users/show.json?cursor=-1&screen_name=somename');
> $page = curl_exec($ch);
> curl_close($ch);

我得到的错误

SSL证书问题,验证CA证书是否正常 . 详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

但它适用于标准curl命令

1 回答

  • 2

    您需要为证书链提供curl,以便验证Twitter的SSL证书是否有效 . 为此,请下载必需的证书签名from here并将其保存到普通文件中(我假设您将其命名为 cacert.pem ) .

    然后,在发出请求之前,将 CURLOPT_CAINFO 设置为指向此文件:

    // assumes file in same directory as script
    curl_setopt($ch, CURLOPT_CAINFO, 'cacert.pem');
    

    明确启用SSL证书验证而不依赖于默认设置也是一个好主意:

    curl_setopt($ch, CURLOPT_VERIFYPEER, true);
    

相关问题