• CURL超时时间设置


    一次完整的http请求,一般包含三个步骤:

    1. 通过DNS把域名解析成IP
    2. 通过IP地址连接到目标主机
    3. 获取目标主机数据(1、给目标主机输出http请求头,以 结尾;2、获取目标主机传过来的数据)

    php 的 curl 对以上三个步骤都有设置超时时间的方法

    1、保存DNS信息时间

    CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。

    2、连接超时时间

    CURLOPT_CONNECTTIMEOUT 以秒为单位。如果设置为0,则无限等待。

    CURLOPT_CONNECTTIMEOUT_MS 以毫秒为单位。如果设置为0,则无限等待。

    3、执行超时时间( DNS解析+连接+提交请求数据+获取请求数据? 或是 提交请求数据+获取请求数据 ?)

    CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。

    CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。 

    注意:

    1、毫秒级设置在cURL 7.16.2中被加入。从PHP 5.2.3开始可用的。如果需要进行毫秒超时,需要增加:

    curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);

    //或者

    curl_setopt ( $ch, CURLOPT_NOSIGNAL,true);

    2、cURL的超时既是socket的超时,因为底层就是socket,所以cURL的默认时间可以在 php.ini 里面设置

    default_socket_timeout = 60

    3、提交请求数据包括header和body,header和body之间用 隔开,获得请求数据一样。这是http的规定。

  • 相关阅读:
    前端笔试题----JavaScript部分
    前端笔试题----html,css部分
    JS基础--执行环境及作用域
    关于css3 flex布局
    Ceph万兆内网与系统万兆迁移
    从0开始的InfiniBand硬件踩坑过程
    Redis实战与分析
    ceph osd 自动挂载的N种情况
    集群IPtables转发与防火墙
    ceph 常见问题百科全书---luminous安装部署篇
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/6888854.html
Copyright © 2020-2023  润新知