我正在尝试访问Coinbase API的此端点:
https://api.pro.coinbase.com/currencies
请注意,端点是公共的/未经身份验证的,API documentation确认这一点
$coinbase_coins = file_get_contents('https://api.pro.coinbase.com/currencies');
$coinbase_coins = json_decode($coinbase_coins, true);
上面的代码抛出400错误。我正在拔头发试图解决这个问题。我可以在浏览器中正常访问端点。我可以使用不同的API访问其他公共端点,所以我认为这在服务器上没有问题。
我也尝试过cURL,但是没有运气。
有人能偶然在PHP中显示有效的示例吗?谢谢!
答案 0 :(得分:4)
这似乎是服务器端问题;没有浏览器UA就会阻止请求。您可以设置一个,看来效果很好。
$ctx = stream_context_create(["http"=>["user_agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0"]]);
$coinbase_coins = file_get_contents('https://api.pro.coinbase.com/currencies', true, $ctx);
$coinbase_coins = json_decode($coinbase_coins, true);
print_r($coinbase_coins);