【问题标题】:cURL error 28: Connection timed out after 1001 milliseconds (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)cURL 错误 28:连接在 1001 毫秒后超时(参见 http://curl.haxx.se/libcurl/c/libcurl-errors.html)
【发布时间】:2019-09-05 07:42:18
【问题描述】:

我正在使用 laravel 框架。 AWS SNS 服务通过附加的链接在我的项目中使用并安装了所有 requiremnet。

https://www.kerneldev.com/2018/01/03/send-sms-in-laravel-using-aws-sns/

但得到 cURL 错误 28:连接在 1001 毫秒后超时(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html

删除旧的访问密钥和秘密密钥并在 aws 控制台中添加新的并更改 config/aws.php 中的密钥

在 DNS 设置中添加了所有 TXT 和 DKIM 记录

创建的网络路由

Route::get('/sendSMS/{phone_number}', 'SMSController@sendSMS');

创建控制器

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use AWS;

class SMSController extends Controller
{
    protected function sendSMS($phone_number){
        $sms = AWS::createClient('sns');

        $sms->publish([
                'Message' => 'Hello, This is just a test Message',
                'PhoneNumber' => $phone_number,
                'MessageAttributes' => [
                    'AWS.SNS.SMS.SMSType'  => [
                        'DataType'    => 'String',
                        'StringValue' => 'Transactional',
                     ]
                 ],
              ]);
    }
}

【问题讨论】:

  • 你必须想办法在客户端创建过程中配置更长的超时时间。
  • 您确定您的访问密钥被正确读取了吗?还有什么会阻止您运行此代码的服务器与 AWS 的对外通信?

标签: laravel amazon-web-services


【解决方案1】:

CurlFactory.php. 中将CURLOPT_TIMEOUT_MS 替换为CURLOPT_CONNECTTIMEOUT

$conf[CURLOPT_CONNECTTIMEOUT] = $options['timeout'] * 10000;  

这对我有用,试试吧。

【讨论】:

    【解决方案2】:

    我找到了解决这个错误的方法

    在 CurlFactory.php 中增加 CURLOPT_TIMEOUT_MS 超时

    $timeoutRequiresNoSignal |= $options['timeout'] < 1;
    $conf[CURLOPT_TIMEOUT_MS] = $options['timeout'] * 10000;
    

    试试这个

    【讨论】:

    • 这不是一个好的答案。我仍然没有解决这个问题,但它似乎与被点击的 URL 有关。
    猜你喜欢
    • 2016-04-14
    • 2021-01-08
    • 1970-01-01
    • 2019-05-25
    • 2016-12-18
    • 1970-01-01
    • 2020-11-07
    • 2019-12-17
    • 2017-05-24
    相关资源
    最近更新 更多