php curl库用法简介
本文导语: php curl库主要有两个requests和guzzle,两个都很复杂。 requests优先使用curl,没有curl时会自动启用fsockets,除非你手工指定了transport。 guzzle有丰富的日志库支持和日志格式,用插件订阅的方式订阅,从代码上看采用事件机制...
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 curl修改网站请求头
- php curl_init函数用法举例
- php curl检测网页是否被百度收录
- php curl伪造ip的简单例子
- php curl伪造IP和来路
- php curl伪造IP与来源示例
- php curl访问https实现代码
- php curl参数详解与用法大全
- php curl伪造IP的示例代码
- php curl模拟post请求的例子
- php curl模块的用法举例
- php curl超时设置详解
- php curl上传文件的简单例子
- php curl实现get,post和cookie的实例代码
- php中开启curl扩展的方法详解
- php curl错误代码列表(收集)
- php curl应用实例分析
- php curl用法的实例代码
- 无法加载php_curl.dll模块的处理办法
- php curl 学习总结