【问题标题】:Guzzel Exception - 500 Internal Server ErrorGuzzle 异常 - 500 内部服务器错误
【发布时间】:2020-06-27 08:41:15
【问题描述】:

我正在尝试获取 API 端点的响应,但会导致错误提示

服务器错误:POST http://base_url/api/servicebookingrequest 导致500 Internal Server Error 响应:\n{\"Message\":\"An 发生错误。\"}\n",

我刚刚添加了到目前为止编写的代码

try {
        \Validator::make($req->all(), [
            'chassis_no' => 'string',
            'registration_no' => 'string',
            'dealer_code' => 'string',
            'pick_and_drop' => 'string',
            'pick_address' => 'string',
            'drop_address' => 'string',
            'booking_date' => 'date',
            'expected_service_date' => 'date',
            'timeslots' => 'string',
        ]);
        $client = new Client();
        $res = $client->request(
            'POST',
            'http://bas_url/api/servicebookingrequest',
            [
                'headers' => [
                    'Content-Type' => 'application/json',
                    '_token' => csrf_token()
                ],
                'form_params' => [
                    'ChassisNo' => $req->chassis_no,
                    'RegistrationNo' => $req->registration_no,
                    'DealerCode' => $req->dealer_code,
                    'PickAndDrop' => $req->pick_and_drop,
                    'PickAddress' => $req->pick_address,
                    'DropAddress' => $req->drop_address,
                    'BookingDate' => $req->booking_date,
                    'ExpectedServiceDate' => $req->expected_service_date,
                    'MultiSlotSelected' => $req->timeslot,
                ]
            ]
        );
        $res_body = $res->getBody()->getContents();
        $res_body = json_decode($res_body, true);
        response()->json(['status' => 'success', 'response' =>$res_body ]);
    } catch (\GuzzleHttp\Exception\RequestException $e) {
        response()->json(['status' => 'success', 'response' => $e->getMessage()]); ;
    }

但我在 postman 中尝试了相同的 API 端点,它从服务器给出了正确的响应。

更新:- Curl 也可以正常工作。

非常感谢任何解决问题的帮助 谢谢

【问题讨论】:

  • 你应该为服务器端添加代码。
  • 你能解释一下吗?除了邮递员和 Curl 之外,guzzle 的唯一问题工作正常
  • 500 Internal Server Error 可以代表任何含义。它表明,您的请求至少到达目标端点。除此之外,只有服务器端会帮助您找到问题。
  • 如果可以的话,我建议在服务器端进行一些日志记录,这将有助于确定接收端中断的位置。
  • 请检查服务器日志并添加更多信息。

标签: php laravel api curl guzzle


【解决方案1】:

该错误与服务器端代码有关,因为同一端点同时适用于 curlpostman。该问题可能与您使用 Guzzle 向端点发送请求的方式有关。尝试将请求选项从form-params 更改为multipart/form-data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2020-02-19
    • 1970-01-01
    相关资源
    最近更新 更多