我在 Laravel 应用程序中遇到问题,其中对外部 API(Telegram Bot API)的 POST 请求失败并出现以下错误:
cURL error 35: Recv failure: Connection reset by peer
我已经设置了一个简单的路由来使用 Laravel 的 Http 客户端触发 Telegram 机器人消息:
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
Route::get('bot', function (Request $request) {
$url = 'https://api.telegram.org/bot<my-token>/sendMessage';
Http::connectTimeout(20)->post($url, [
'chat_id' => '<chat-id>',
'text' => 'Got a new request!'
]);
});
当我使用必要的查询参数手动打开 URL 时,它会按预期工作并将消息发送到 Telegram 聊天。但是,当在 Laravel 中发出请求时,我收到上述 cURL 错误。
Http::withOptions(['verify' => false])
但我仍然遇到同样的错误。Http::withOptions(['curl' => [CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2]])
我也尝试过使用客户端(GuzzleHttp\Client)。但出现同样的错误..
提前致谢
已解决:我只需要打开 VPN(因为 Telegram 在我的国家/地区不可用)