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的规定。

  • 相关阅读:
    第十篇 .NET高级技术之委托
    第九篇 .NET高级技术ref、out
    文华财经函数大全
    为字段创建全文检索索引
    C#.NET中代码注释提示
    WPF中的资源引用心得
    XAML文件动态加载
    spring MVC找不到JS的问题
    Oracle性能监控脚本
    ExtJs之Ext.data.Store
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/6888854.html
Copyright © 2011-2022 走看看