繁体   English   中英

fopen()返回错误:无法打开流:HTTP请求失败! 找不到HTTP / 1.1 404

[英]fopen() returns error: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

以下代码产生了我在标题中所述的错误:

        $authkey = "XXXXXXXXXXX";

    if (!isset($_SESSION["steamid"])) {

        $handle = fopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=" . $authkey . "&steamids=" . $uid, "r");

        $content = stream_get_contents($handle);

        $stdclass = json_decode($content);

        //var_dump($stdclass);

        $data = get_object_vars($stdclass->response->players[0]);

        foreach ($data as $key => $value) {
            $_SESSION[$key] = $value;
    }

我在这里也阅读了关于stackoverflow的其他问题,但都没有真正的解决方案。 我发布的代码是在某种登录过程中调用的函数中。 如果我将代码放在文档外部,然后使用Web浏览器打开该文档,则不会出现错误。 另外,该代码在我的本地计算机上也有效。 但是在我的服务器上出现错误。

我的本地计算机使用php5运行ubuntu 12.04,我的外部服务器使用php5运行ubuntu 8.04。 allow_url_fopen为“开”。 任何帮助都会很棒。

fopen不允许默认打开远程位置。 一种更稳定的方法是使用curl:

$c = curl_init( sprintf("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=%s&steamids=%s" , $authkey , $uid) );
curl_setopt( $c , CURLOPT_RETURNTRANSFER , true );
$stdClass = json_decode( curl_exec( $c ) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM