PHP / AJAX BASH获得对API系统的访问

时间:2016-11-04 06:06:28

标签: php ajax bash curl

我很难理解API of this site的教程,您可以看到本教程的第一部分使用BASH命令行脚本来获取访问权限

enter image description here

当我在BASH命令行中运行上面的curl命令时,我得到API提供的所有内容的输出

enter image description here

我的问题

如何仅通过取消AJAX / PHP脚本,如何在没有BASH命令行 的情况下访问API ?我在这里不理解什么?

编辑:

我尝试过:

<?php
$output = shell_exec('curl -X GET https://jsonodds.com/api/odds -H "JsonOdds-API-Key: xxxxxxxx"');
echo "<pre>".$output."</pre>";
?>

我最近的尝试包括根据用户@ v7d8dpo4

的建议尝试
$api_key = "yourapikey";
$ch = curl_init("https://jsonodds.com/api/odds?source=3");
curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER => array("JsonOdds-API-Key: " . $api_key),
    CURLOPT_RETURNTRANSFER => true));
$response = curl_exec($ch);

$response上执行vardump会给我var_dump($response); = bool(false)

var_dump(curl_getinfo($ch))上执行vardump会给我= array(26) { ["url"]=> string(38) "https://jsonodds.com/api/odds?source=3" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(0) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0)

我只是在寻找一种连接到API的方法,但是尽管我无法连接多次尝试

2 个答案:

答案 0 :(得分:1)

喜欢这个。

$api_key = "yourapikey";
$ch = curl_init("https://jsonodds.com/api/odds?source=3");
curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER => array("JsonOdds-API-Key: " . $api_key),
    CURLOPT_RETURNTRANSFER => true));
$response = curl_exec($ch);

答案 1 :(得分:0)

PHP中“https”curl操作的NULL响应通常意味着您没有为SSL正确设置证书链。

您可以添加

进行验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

在curl_exec之前。

这告诉curl忽略证书错误:它是“危险的”(因为想要更好的词),所以只用于调试。

如果这表明它是错误,那么您可以通过向链中添加合适的证书或将curl(通过其他选项)指向本地证书来修复。如果取决于您的系统和设置。有关它的更多信息,请访问:https://curl.haxx.se/docs/sslcerts.html