zoukankan      html  css  js  c++  java
  • 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的规定。

  • 相关阅读:
    nuxt.js 学习与记录
    图片上传预览 接收
    k8s之deployment
    k8s之service
    k8s的一些命令
    ansible 学习
    k8s之ConfigMap && secret
    k8s 之Job/CronJob
    k8s之PV & PVC
    配置ssh免密登录
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/6888854.html
Copyright © 2011-2022 走看看