使用cUrl时无输出

时间:2016-01-20 18:09:02

标签: php curl

我试图在这里收到json文件的内容,但是当我想回显输出($ json)时,它并没有给我任何信息。我在stackoverflow上看了一些涉及cUrl的其他问题,并使用了答案中给出的cUrl设置,所以它应该工作正常。难道我做错了什么?这是我的代码:

$url = 'http://steamcommunity.com/profiles/<your 64-bit steam ID>/inventory/json/730/2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$json = json_decode($output, true);
print_r($json);

1 个答案:

答案 0 :(得分:2)

$output = curl_exec($ch);行后添加:

$info = curl_getinfo($ch);
echo "<pre>";   
print_r($info);
echo "</pre>";

并在此打印您在浏览器中看到的内容。没有这些信息,人们无法帮助您。

我运行你的代码,它工作正常。我有HTTP答案代码200和页面加载成功。页面说:&#34;无法找到指定的配置文件&#34; (没关系,因为我没有钥匙)。

我的$info打印:

Array
(
    [url] => http://steamcommunity.com/profiles//inventory/json/730/2
    [content_type] => text/html; charset=UTF-8
    [http_code] => 200
    [header_size] => 927
    [request_size] => 109
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.561
    [namelookup_time] => 0.062
    [connect_time] => 0.109
    [pretransfer_time] => 0.109
    [size_upload] => 0
    [size_download] => 18266
    [speed_download] => 32559
    [speed_upload] => 0
    [download_content_length] => 18266
    [upload_content_length] => -1
    [starttransfer_time] => 0.561
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => 2.17.165.89
    [certinfo] => Array
        (
        )

    [primary_port] => 80
    [local_ip] => 192.168.1.33
    [local_port] => 53366
)    

一切都很完美。也许您与steamcommunity.com的联系不佳?如果您收到[http_code] => 0,则表示肯定。

如果添加这个,你会看到什么:

print_r($output);

可能是页面加载了,但不是JSON?如果是,您的$json应为空,绝对可以。

在您的评论后更新:

您收到了302个重定向的HTTP代码和网址。您需要转到此URL并且您已收到JSON。完整代码:

$url = 'http://steamcommunity.com/profiles/<your 64-bit steam ID>/inventory/json/730/2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_setopt($ch, CURLOPT_URL, $info["redirect_url"]); // Set new URL
$output = curl_exec($ch); // Go to new URL
$json = json_decode($output, true); // Your JSON here, I checked it
print_r($json); // Print JSON