`
ryan.liu
  • 浏览: 136350 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PHP下的cURL库

阅读更多

PHP下的cURL库主要有两个Requests和Guzzle,两个都很复杂。

 

Requests优先使用cURL,没有cURL时会自动启用fsockets,除非你手工指定了Transport。

 

Guzzle有丰富的日志库支持和日志格式,用插件订阅的方式订阅,从代码上看采用事件机制,质量更高。

它只支持cURL(至少只v3版本是),并依赖于Symfony的EventEmitter,但它被ReactPHP所依赖。

最近(2014-03-28)发现它从v3.8.1升级到v4.0.0rc,居然把Namespace改了,将前两段缩减为一段,源码目录也去掉了顶层的Guzzle,毫无意义还导致既不向前兼容,也和其他常见PHP库不一致。

 

现在是重点,Guzzle通常用得好好的,但昨天发现一个问题,有个远程的网址,有到支付宝去查询支付结果。调用这个网址时,Guzzle会不成功,但Requests可以。

 

下面是关于cURL命令的,其有两个超时时间,connect-timeout和timeout-max(后面这个通常在程序中就叫做timeout),其中后者包含前者,cURLl默认的connect-timeout是300秒,没有给timeout-max设置值,但由于包含关系,当你不设置timeout时,它至少也是300秒。

而对于PHP的fsockets,由于php.ini中有个配置项default_socket_timeout,其默认值才60秒。

另外cURL默认不支持http redirect,需要传递 -L 选项(无参数),但根据使用PHP和Python的经历,不少cURL库默认是开启了redirect,至少Guzzle的文档明确说了是开启了的,如果需要,要手动关闭。

 

 

依据:

 

curl默认的connect-timeout是300秒

https://github.com/bagder/curl/blob/master/lib/connect.h

 

3.8 How do I tell curl to follow HTTP redirects?

http://curl.haxx.se/docs/faq.html

分享到:
评论

相关推荐

    php扩展 php_curl

    `php_curl`是PHP中的一个核心扩展,它提供了对cURL库的接口,使得PHP能够与各种网络协议进行交互,包括HTTP、HTTPS、FTP、FTPS等。cURL库本身是一个强大的客户端URL传输工具,而`php_curl`扩展则是将这些功能集成到...

    CentOs下安装PHP扩展 curl

    在CentOS系统中,安装PHP扩展是服务器管理中常见的任务,尤其当需要处理与网络相关的功能,如HTTP请求,或者需要使用cURL库时。本文将详细讲解如何在CentOS环境下,不重新编译PHP的情况下,安装cURL扩展。 1. **...

    php下curl用法详解

    在PHP中,cURL库是一个强大的工具,用于执行HTTP和其他协议的请求,它允许开发者模拟浏览器行为,如发送POST请求、处理cookies、设置代理等。本文将深入解析PHP下的cURL用法,以便更好地理解和应用。 1. **初始化...

    php curl安装 php中没有编译curl的解决方法for windows

    在PHP开发过程中,cURL库是一个非常重要的工具,它允许我们执行HTTP请求并与其他网络服务进行交互。然而,有时在Windows环境下,你可能会发现PHP环境中并没有预装cURL扩展,这将导致无法使用cURL相关的函数。本文将...

    php的Curl处理类

    开启php curl函数库的步骤 1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/ 2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下 3).重启apache

    php curl批量请求url

    在PHP开发中,cURL库是一个非常强大的工具,用于处理HTTP和其他协议的网络请求。它允许程序员模拟浏览器的行为,发送GET、POST等不同类型的HTTP请求,甚至可以处理HTTPS、cookies、HTTP头等复杂情况。本篇文章将深入...

    Centos环境下安装curl

    首先需要确保系统中已经安装了curl库,这通常可以通过包管理器来完成。在Centos系统中,可以使用`yum`命令进行安装: ```bash sudo yum install curl -y ``` 如果需要使用curl的一些高级特性,比如HTTPS支持,则...

    php curl模仿form表单提交图片或文件

    在本文中,我们将深入探讨如何使用PHP的cURL库来模仿form表单提交,特别是提交图片或文件。我们将结合ThinkPHP5(简称TP5)框架来展示一个实际的例子。 首先,了解cURL。cURL是一个客户端URL传输库,它支持多种协议...

    CURL.zip库

    CURL库提供了丰富的API接口,允许开发者用C语言或其他支持的语言(如Python、Java、PHP等)进行调用,实现了跨平台的URL操作功能。 在您提供的信息中,"CURL.zip库"是针对Visual Studio 2015 (VS2015)编译的版本,...

    PHP技巧PHPCURL函数库.doc

    PHP的cURL库是一个强大的工具,用于处理HTTP和其他网络协议的传输。它允许开发者通过脚本执行各种HTTP请求,如GET、POST等,并且可以处理重定向、cookies、认证等多种功能。以下是对cURL库中一些关键函数的详细解释...

    php5.3php_curl

    2. **函数库**:cURL提供了一系列的PHP函数,如`curl_init()`用于初始化会话,`curl_setopt()`设置会话选项,`curl_exec()`执行请求,`curl_error()`检查错误,以及`curl_getinfo()`获取请求信息等。 3. **请求类型*...

    linux下PHP扩展的安装(curl)

    在安装PHP的curl扩展之前,首先需要确保系统已经安装了curl库。可以通过以下命令下载并编译安装curl: ``` wget http://curl.haxx.se/download/curl-7.19.6.tar.gz tar -zxvf curl-7.19.6.tar.gz cd curl-7.19.6 ./...

    php curl 长连接的实现

    在PHP开发中,cURL库是一个非常重要的工具,它用于处理HTTP和其他协议的请求。当涉及到频繁的HTTP通信,如API调用或者内部服务交互时,使用cURL的长连接功能可以显著提升性能。本文将深入探讨如何在PHP中利用cURL...

    php中curl的get,post通用类.zip

    一个PHP curl get post通用类,curl 通用方法 。。get /post 传送数据,设置发送方式 0 get 1 post。具有很好的参考价值,朋友们如果喜欢可以下载,如果有更好的curl类可以发布到我们php中文网,大家一起学习交流。

    Win7 64 位系统下 php_curl

    解决方法是确保从可靠的源下载与您的PHP版本相匹配的php_curl.dll,并将其放在PHP的`ext`目录下。 2. **PHP配置问题**:PHP的配置文件(php.ini)中可能未启用curl扩展。你需要在php.ini中找到`extension=...

    php-cUrl.rar

    本文将深入探讨如何利用cUrl库在PHP环境中进行接口测试,并结合提供的"php-cUrl.rar"压缩包,展示其实战应用。 cUrl,全称为Client URL Library,是PHP内置的一个强大功能库,用于处理URLs,支持各种协议如HTTP、...

    php curl nginx 499 错误

    在IT行业中,网络编程是不可或缺的一部分,而PHP的cURL库则是进行HTTP和其他协议请求的常用工具。然而,当我们在使用cURL与服务器交互时,可能会遇到一些异常情况,比如"nginx 499错误"。这个错误通常发生在Nginx...

    php的curl整合类.zip

    在PHP开发中,cURL库是一个非常强大的工具,它允许开发者通过HTTP协议与其他网络协议进行交互,例如FTP、SMTP等。这个"php的curl整合类.zip"文件提供了一个封装好的PHP类,使得开发者可以更方便地利用cURL功能,模拟...

    PHP后端curl进度条_becomeyy9_php后端_php后端curl上传进度条_

    在PHP后端开发中,有时候我们需要使用cURL库来处理HTTP请求,比如文件的上传或下载。当处理大文件时,为了提供更好的用户体验,我们可能会希望实现一个进度条功能,以便用户可以直观地看到文件传输的进度。本篇文章...

Global site tag (gtag.js) - Google Analytics