【发布时间】: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