php的curl函数模拟post数据提交,首次速度非常慢的处理办法
来源:互联网 发布:深圳阿里云所在地地址 编辑:程序博客网 时间:2024/06/05 15:16
如果你用 curl_setopt 函数来与远程的webservice或者抓取页面的处理时,有时会遇到很奇怪的现象,首次访问的速度异常的慢,基本上要5s-10s的时间让人奔溃。
但是怎么查也差不出问题出在哪儿,最近发现一个文章写了处理这个问题的方式。
先从解决问题入手:
1、curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0
2、curl_setopt($ch, CURLOPT_HTTPHEADER, array(''Expect: '')); //头部要送出'Expect: '
3、curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名
以3个还不行,那我也没办法了。
Expect:100-continue 问题:转载于:http://www.laruence.com/2011/01/20/1840.html
在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,
1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server
这是libcurl的行为.
具体的RFC相关描述: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3
于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,
解决方法:curl_setopt($ch, CURLOPT_HTTPHEADER, array(''Expect: '')); //头部要送出'Expect: '
IPV4问题:转载于http://www.lovelucy.info/curl-exec-wget-slow-due-to-ipv6.html
现在很多服务器都开启了 IPv6 却没有路由,无法真正工作,反而导致一些不可预料的问题。
- php的curl函数模拟post数据提交,首次速度非常慢的处理办法
- php的curl函数模拟post、get数据提交,速度非常慢的处理办法
- php的curl函数模拟post、get数据提交,速度非常慢的处理办法
- php curl模拟post提交数据的例子
- php curl模拟post提交数据示例
- PHP CURL模拟POST提交XML数据
- php curl模拟post请求提交数据
- php CURL 模拟 POST 提交数据
- PHP利用CURL方法模拟POST提交数据并获得返回值的小细节
- php curl 模拟post提交
- cURL模拟POST提交数据
- curl模拟post提交数据
- CURL模拟POST提交的方法
- PHP CURL 模拟POST请求 提交数据或上传文件
- php 开启curl扩展 后 模拟post提交数据
- php curl模拟post请求提交数据例子总结
- php curl模拟post请求提交数据例子总结
- php curl模拟post请求提交数据例子总结
- Maya: 菜单 编辑网格 >收拢
- UVA 10954 Add All (贪心 + 优先队列)
- Maya: 菜单 编辑网格 >合并顶点工具
- 变量的存储类型
- 七个高效的文本编辑习惯(以Vim为例)
- php的curl函数模拟post数据提交,首次速度非常慢的处理办法
- 每天一段小代码——顺序栈
- [HDU 3652]B-number[数位DP]
- 一个人的旅行 spfa
- Objective—C 关于NSString 和 NSMutableString
- Maya: 菜单 编辑网格 >合并边工具
- Cannot return from outside a function or method
- UDP聊天室
- 小程序-----链表表示二叉树