猿问

当curl和Postman完全正常时,出现Guzzle错误

我正在项目中将 Guzzle 设置为 Laravel 6 的 HTTP 客户端。它工作得很好,并且对每个 API 命中都给出了响应。但突然它返回“Call to a member function getStatusCode() on null”错误。


我尝试使用 Postman 和curl 来访问API,当Guzzle 不返回时,它们会返回正确的响应。


RequestException 响应的 print_r 不返回响应,而是返回 null。


我尝试调试REST API 以测试使用 Guzzle 命中请求时请求的去向,但请求甚至没有命中目标函数。


这是我的 Guzzle 代码:


class ApiCallback

{

    public static function request($method, $uri, $params = [], $useAccessToken = true){

        $client = new \GuzzleHttp\Client();

        $response = null;


        $jsonObj = null;

        try{

            if($useAccessToken){

                $response = $client->request(

                    strtoupper($method),

                    $uri,

                    [

                        "headers" =>[

                            'Accept' => '*/*',

                            "Authorization" => "Bearer ".Session::get('access_token'),

                            'Content-Type' => 'application/json',

                            'User-Agent' => 'saranaku-'.Session::get('id'),

                            'Content-Length' => '0',

                            'Accept-Encoding' => 'gzip, deflate, br',

                            'Connection' => 'keep-alive'

                        ]

                        ,

                        "body" => \json_encode(

                            $params

                        )

                    ]

                );

            }


附加信息:

  1. REST API 正在本地主机中运行,端点为:/v1/login

  2. HTTP 方法是 POST

  3. REST API 使用 Java Spring Boot v1.5.6

  4. 请求正文是

{

     "data":{

          "username": "username_string",

          "password": "password_string"

     }

}

我已经尝试过清除缓存,但composer dump-autoload问题仍然存在


慕虎7371278
浏览 215回答 2
2回答

慕标5832272

我找到了问题和解决方案。因此,我正在对异常进行一些日志记录 Log,发现我的$uri无效,因为在.env文件中找不到我的 API BASE URL。因此,解决方案正在实施php artisan cache:clear,并且大口的工作也有效。Log对于阅读此问题的任何人,如果堆栈跟踪对您没有帮助,请记住尝试一下。

拉莫斯之舞

就我而言,这是一个配置不正确的错误记录远程通道。该错误发生在错误通道故障时,而不是在您的代码中。正如您所提到的,必须修复错误日志记录或检查服务器上的日志,它们具有原始的错误堆栈。
随时随地看视频慕课网APP
我要回答