我尝试调用一个返回JSON文件的API:
正如您所知,有一个验证框要求输入用户和密码。
我有一个令牌(只是一个用户名,没有密码,请查看下面的脚本),但我无法设法验证身份。
我试过这个:
<?php
$host='https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:OCE:SA:87391003/departures?datetime=20180323T085700';
$json_source=file_get_contents($host);
$username="d96395d8-342d-4be4-8ed3-5909624abc57";
$password="";
$additionalHeaders="";
$payloadName="";
$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $payloadName);
$return = curl_exec($process);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
curl_close($process);
$data = json_decode($json_source);
var_dump($data);
foreach ($data->departures as $a) {
echo $a->display_informations->direction. '<br />';
}
?>
但它不起作用,我一直有这个错误:
警告:file_get_contents():SSL操作失败,代码为1。 OpenSSL错误消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:证书验证失败 第3行的C:\ wamp64 \ www \ index.php
所以如果我做var_dump($data)
,我会得到一个Null
变量。
在互联网上,该示例主要是指定证书以克服SSL问题,但在我的情况下,我需要提供的用户/密码,我无法使用我找到的示例来使用它在互联网上,所以我来找你。