PHP捕获打开流失败:HTTP请求失败!HTTP/1.1 401未经授权

PHP捕获打开流失败:HTTP请求失败!HTTP/1.1 401未经授权,php,oauth,error-handling,oauth-2.0,Php,Oauth,Error Handling,Oauth 2.0,我正在努力做到以下几点 当我尝试使用oAuth访问服务时,如果因为使用了错误的密钥而出现错误,我希望不显示错误消息,而是将用户发送到身份验证页面 但是,使用try-catch fn不起作用 这是我的代码: $url = 'https://api.soundcloud.com/me.json?'.http_build_query(array( 'oauth_token' => $token, )); // try{ $user = js

我正在努力做到以下几点

当我尝试使用oAuth访问服务时,如果因为使用了错误的密钥而出现错误,我希望不显示错误消息,而是将用户发送到身份验证页面

但是,使用try-catch fn不起作用

这是我的代码:

$url = 'https://api.soundcloud.com/me.json?'.http_build_query(array(
        'oauth_token' => $token,
    ));
    //
    try{
        $user = json_decode(file_get_contents($url));
        return array(
            'uid' => $user->id,
            'nickname' => $user->username,
            'name' => $user->full_name,
            'location' => $user->country.' ,'.$user->country,
            'description' => $user->description,
            'image' => $user->avatar_url,
            'urls' => array(
                'MySpace' => $user->myspace_name,
                'Website' => $user->website,
            ),
        );
    }
    catch(Services_Soundcloud_Invalid_Http_Response_Code_Exception $e)
    {
        log_message('error', 'EXCEPTION: '.$e);
        return FALSE;
    }
我希望它要么返回用户数组,要么返回FALSE


有什么想法吗

您可以在此处查看捕获文件\u获取\u内容错误的信息

这提供了不同的解决方案,比如查看响应标题

$content = @file_get_contents("http://www.google.com");
if (strpos($http_response_header[0], "200")) { 
   echo "SUCCESS";
} else { 
   echo "FAILED";
}

您可以在此处查看捕获文件\u获取\u内容错误

这提供了不同的解决方案,比如查看响应标题

$content = @file_get_contents("http://www.google.com");
if (strpos($http_response_header[0], "200")) { 
   echo "SUCCESS";
} else { 
   echo "FAILED";
}

您尝试的块很可能不会抛出那个长而丑的异常。由于您只捕获该特定异常,因此任何其他异常都将继续进行。如果您
捕获(异常$e)
,它是否有效?这可能会对您有所帮助它现在似乎正在与异常$e一起工作,我以前尝试过,但运气不好。可能是缓存了什么的。无论如何,谢谢你,你能把它作为一个答案发布吗?你尝试的块很可能不会抛出那个长而丑的异常。由于您只捕获该特定异常,因此任何其他异常都将继续进行。如果您
捕获(异常$e)
,它是否有效?这可能会对您有所帮助它现在似乎正在与异常$e一起工作,我以前尝试过,但运气不好。可能是缓存了什么的。无论如何,谢谢你,你能把它作为一个答案吗?