Laravel HTTP 客户端 POST 请求无效
Laravel HTTP Client POST request doesn't work
所以这是我在控制器上的代码:
public function postAgenda(Request $request)
{
$response = Http::withToken('31|14gfAJHaXv6qU3x4WwxAwE8Txxxxxxxxxxxxxxxx')->post('https://myapi.tld/AgendaCrt', [
'Agenda' => [
'hari' => 'senin',
'tgl' => '2022-02-18',
'waktu' => '16:00:00',
'lokasi' => 'bogor',
'kegiatan' => 'Belajar HTTP Client',
'user_id' => '9'
]
]);
return response()->json([
'Success' => $response
], Response::HTTP_OK);
}
这是 web.php 路线上的路线:
Route::get('/post', [AgendaController::class, 'postAgenda']);
当我尝试在浏览器上运行它时,响应成功但它没有发送任何数据,如下图所示。
Laravel 的 HTTP 客户端包装器不会在客户端或服务器错误时抛出异常(来自服务器的 400
和 500
级响应)。您可以使用 successful
、clientError
或 serverError
方法确定是否返回了这些错误之一。
或者..
throw
方法 returns 响应实例,如果没有发生错误,允许您将其他操作链接到 throw 方法:
$response = Http::withToken('31|14gfAJHaXv6qU3x4WwxAwE8Txxxxxxxxxxxxxxxx')
->post('https://myapi.tld/AgendaCrt', [
'Agenda' => [
'hari' => 'senin',
'tgl' => '2022-02-18',
'waktu' => '16:00:00',
'lokasi' => 'bogor',
'kegiatan' => 'Belajar HTTP Client',
'user_id' => '9'
]
])
->throw()
->json();
return response()->json([
'Success' => $response
];
将您的方法 Route::get
更改为 Route::post
所以这是我在控制器上的代码:
public function postAgenda(Request $request)
{
$response = Http::withToken('31|14gfAJHaXv6qU3x4WwxAwE8Txxxxxxxxxxxxxxxx')->post('https://myapi.tld/AgendaCrt', [
'Agenda' => [
'hari' => 'senin',
'tgl' => '2022-02-18',
'waktu' => '16:00:00',
'lokasi' => 'bogor',
'kegiatan' => 'Belajar HTTP Client',
'user_id' => '9'
]
]);
return response()->json([
'Success' => $response
], Response::HTTP_OK);
}
这是 web.php 路线上的路线:
Route::get('/post', [AgendaController::class, 'postAgenda']);
当我尝试在浏览器上运行它时,响应成功但它没有发送任何数据,如下图所示。
Laravel 的 HTTP 客户端包装器不会在客户端或服务器错误时抛出异常(来自服务器的 400
和 500
级响应)。您可以使用 successful
、clientError
或 serverError
方法确定是否返回了这些错误之一。
或者..
throw
方法 returns 响应实例,如果没有发生错误,允许您将其他操作链接到 throw 方法:
$response = Http::withToken('31|14gfAJHaXv6qU3x4WwxAwE8Txxxxxxxxxxxxxxxx')
->post('https://myapi.tld/AgendaCrt', [
'Agenda' => [
'hari' => 'senin',
'tgl' => '2022-02-18',
'waktu' => '16:00:00',
'lokasi' => 'bogor',
'kegiatan' => 'Belajar HTTP Client',
'user_id' => '9'
]
])
->throw()
->json();
return response()->json([
'Success' => $response
];
将您的方法 Route::get
更改为 Route::post