【问题标题】:CURL canceling request, Does not giving any responseCURL 取消请求,不响应
【发布时间】:2018-05-15 06:22:17
【问题描述】:

我正在使用 angular 1。我正在从后端获取 angular get 数据。我的后端函数有 CURL 请求,它从 3rd 方服务器获取数据。

在某些情况下,它会获取数据,即当第三方服务器在 10 到 20 秒内响应时。

问题是第三方服务器需要 30 秒或以上的时间。它会自动取消请求。附加图像。

我还增加了 Curl 超时和连接超时选项。但它不起作用。

这是我的代码的样子

curl_setopt_array($curl, array(
            CURLOPT_URL => $radius_url,
            CURLOPT_CUSTOMREQUEST => "GET",
            CURLOPT_HTTPHEADER => array(
                "content-type: application/json",
            ),
            CURLOPT_HEADER => 0,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 60,
            CURLOPT_CONNECTTIMEOUT => 60,
        ));

如果出现问题,它甚至不允许运行低于该 curl 请求的代码。如果出现问题,它不会打印低于此请求的任何内容。

我正在使用 CodeIgniter 框架。

【问题讨论】:

  • 取消是在客户端代码上发生的。服务器端超时有一个与之关联的响应代码
  • @apokryfos 这完全取决于超时发生了什么。
  • @apokryfos 所以你是说它来自客户端而不是来自服务器端?
  • 是的,取消来自浏览器出于某种原因取消请求。尝试以角度设置超时设置以确认是否是问题所在。

标签: php codeigniter curl angular1.6


【解决方案1】:

将您的服务器超时限制设置为

 set_time_limit(0);

如果它仍然继续,则服务的服务器可能会超时。您可以联系他们的支持。

【讨论】:

    【解决方案2】:

    看起来像php超时

    你有两个解决方案。

    一直是提高PHP的执行时间

    一个。

    ;;;;;;;;;;;;;;;;;;;
    ; Resource Limits ;
    ;;;;;;;;;;;;;;;;;;;
    
    ; Maximum execution time of each script, in seconds
    ; http://php.net/max-execution-time
    ; Note: This directive is hardcoded to 0 for the CLI SAPI
    max_execution_time=30
    

    将 max_execution_time 更改得太大

    还有两个。

    你添加第一个代码

    set_time_limit(0)

    【讨论】: