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 客户端包装器不会在客户端或服务器错误时抛出异常(来自服务器的 400500 级响应)。您可以使用 successfulclientErrorserverError 方法确定是否返回了这些错误之一。

或者..

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