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

これは、ドメイン間の不一致が原因だと思います。ページを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 に答える
1

allow_url_fopenPHP設定で有効にしていますか?

そうでない場合は、警告が生成されます - エラー/警告が表示されていますか?

エラーを確認するには、スクリプトの先頭に以下の行を追加します。

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

そうすれば、うまくいかない理由がわかるかもしれfile_get_contents()ません。

于 2013-03-04T12:28:15.387 に答える