0

我想从这里检索 JSON 数据:

{

    "input_address": "1BeE32K9FxvrnBNeuKwdyM26vZ4GsggqZG",
    "callback_url": "http://example.com",
    "fee_percent": 1.5,
    "destination": "12Za1i1zhYTCeHWBg8yJb72BeEGQVEuMdT"

}

...如果你把它放在你的浏览器上,你会看到 JSON 数据的格式是正确的。那里没问题。

但是,当我尝试使用标准脚本通过 PHP 检索数据时:

<?php
$url = 'https://blockchain.info/api/receive?method=create&format=plain&anonymous=true&address=12Za1i1zhYTCeHWBg8yJb72BeEGQVEuMdT&callback=http%3A%2F%2Fexample.com';
$JSON = file_get_contents($url);
$data = json_decode($JSON);
var_dump($data);
echo 'url: '.$url;
?>

...我没有得到任何数据;var_dump 写入“NULL”(您可以在http://bitstamina.com/theamazinghat/thehat.php测试之前的代码)。然而,如果我尝试任何其他返回 JSON 数据的 url,我的代码就可以完美运行。

我究竟做错了什么?这一定是我的一个非常愚蠢的错误,或者网站 blockchain.info 阻止了我的网站发出请求。

4

2 回答 2

1

您是否已allow_url_fopen在您的 php 配置中启用?

如果没有,您将收到警告 - 您是否显示错误/警告?

要检查错误,请在脚本顶部添加以下行。

error_reporting(E_ALL);
ini_set('display_errors', true);

然后您可能会看到为什么file_get_contents()不起作用。

于 2013-03-04T12:28:15.387 回答
1

我相信这是由于跨域不匹配造成的。将您的页面更改为 https 或使用 http 调用。 http://blockchain.info/api/receive?method=create&format=plain&anonymous=true&address=12Za1i1zhYTCeHWBg8yJb72BeEGQVEuMdT&callback=http%3A%2F%2Fexample.com

这行得通。

于 2013-03-04T12:32:55.387 回答