这是我在远程服务器上使用的BASH命令 -
curl -i -H "Content-Type: application/json" -H "Authorization: USERNAME:PASSWORD" "https://api7.publicaster.com/Rest/Ping.svc/?format=json"
这是我在PHP脚本上的代码,我在WAMP本地测试环境中运行以请求相同的信息.
header("Content-Type: application/json");
$encrypted_account_id = 'USERNAME';
$api_password = 'PASSWORD';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://api7.publicaster.com/Rest/Ping.svc/?format=json");
$headers = array();
$headers[] = 'Content-type: application/json';
$headers[] = 'Authorization: $encrypted_account_id:$api_password';
curl_setopt($ch, CURLOPT_HEADER, $headers);
$server_output = curl_exec($ch);
curl_close($ch);
print_r($server_output);
如果在我的PHP脚本上我请求HTTP站点然后它返回 -
HTTP/1.1 401 Unauthorized
Cache-Control: private
如果在我的PHP脚本上我请求HTTPS站点,那么它只返回空白.我有一个自签名的SSL证书并启用了SSL,我可以访问我的WAMP服务器的HTTPS部分但是我收到了警告.
我无法弄清楚这是我的代码或我的WAMP服务器的问题.有任何想法吗?
如果我将以下内容添加到我的代码并尝试CURL HTTPS地址我至少收到一个响应,但它是未授权的CC:私有错误 -
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
Sch*_*eun 10
我想我找到了答案,问题是你的curl请求无法验证ssl peer.Windows不会自动拥有CA证书来进行验证.
所以这就是我通过curl为wamp修复我的https请求所做的工作.下载cacert.pem文件http://curl.haxx.se/docs/caextract.html并将其放在PHP文件夹中,我的位于:
C:\wamp\bin\php\php5.5.12
现在打开php.ini文件,找到以.开头的行 
; curl.cainfo =
取消注释该行"删除;在前面"并添加cacert.pem文件的绝对路径.我看起来像这样:
curl.cainfo = C:\wamp\bin\php\php5.5.12\cacert.pem
现在重启wamp和瞧!我可以愉快地通过curl on wamp打开https协议.
| 归档时间: | 
 | 
| 查看次数: | 2287 次 | 
| 最近记录: |