如果你用 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 提交 json 数据示例 本文主要介绍了 PHP 基于 curl 模拟 post 提交 json 数据操作,通过实例形式分析了 PHP 使用 curl 实现 post 方式提交 json 数据相关操作步骤与留意事项。下面是文章的...
在PHP开发中,有时我们需要模拟用户通过HTML表单提交数据,包括文件和图片。`cURL`库提供了一个强大的功能,允许我们实现这样的任务。在本文中,我们将深入探讨如何使用PHP的cURL库来模仿form表单提交,特别是提交...
PHPCURL模拟登录获取及提交数据的函数 PHPCURL是一个基于PHP语言的CURL扩展库,提供了模拟浏览器的功能,可以模拟用户的浏览器行为,发送HTTP请求,获取服务器响应数据,提交数据等。该库广泛应用于爬虫、自动化...
在Web开发中,通过PHP脚本使用cURL库模拟POST请求来提交数据是一项非常基础且重要的技能。本文会详细介绍如何使用PHP的cURL函数来模拟一个POST请求提交数据的示例,这对于需要通过程序控制与Web服务进行数据交互的...
在PHP中,我们通过`curl_init()`函数创建一个cURL会话,然后使用`curl_setopt()`设置各种选项,如URL、POST数据、cookie处理等。最后,用`curl_exec()`执行请求,并通过`curl_getinfo()`和`curl_error()`检查请求...
php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个大家一起看看.
在PHP开发中,cURL库是一个非常重要的工具,它允许开发者通过HTTP协议与其他网络协议进行交互,例如模拟POST请求。本文将深入讲解如何使用PHP cURL来模拟POST请求,并处理多维数组作为请求参数。 首先,让我们看看...
在PHP编程中,cURL库是一个非常强大的工具,它允许开发者执行HTTP和其他协议的请求,如GET、POST、PUT等,还可以进行模拟登陆、设置HTTP头、管理cookies等。本篇将详细介绍如何使用PHP的cURL函数来获取数据、模拟...
在IT行业中,PHP和cURL库常常被用来处理网络数据的获取和交互,尤其是在需要模拟登录和抓取特定页面信息的场景下。本篇文章将详细探讨如何利用PHP结合cURL来实现远程模拟登录并获取数据。 首先,让我们理解一下PHP...
本主题主要关注如何在后台使用curl命令来模拟POST请求,以便调用API接口。curl是一个强大的命令行工具,常用于在终端中传输数据到服务器或者从服务器获取数据。 首先,我们需要理解什么是`definitionwir`,这可能是...
以下是对PHP cURL函数库的一些详细说明: 1. **curl_init()**: 这个函数用于初始化一个新的cURL会话。它接受一个可选的URL参数,如果提供,cURL会立即尝试访问该URL。例如: ```php $ch = curl_init('...
在微信开发中,由于微信提供了丰富的API接口,开发者通常需要使用CURL来模拟用户行为,获取或提交数据。本教程将详细讲解如何在PHP中使用CURL来处理微信接口的GET与POST请求。 首先,我们需要理解GET和POST两种HTTP...
CURLOPT_REFERER用于设置模拟网页来源地址,这在需要模拟表单提交时非常有用。 6. 错误处理:在使用cURL过程中,错误处理是必不可少的。curl_error()函数可以获取cURL执行过程中发生的最后一个错误,从而进行相应的...
在IT行业中,网络通信是至...总的来说,PHP的SOCKET功能为我们提供了一种灵活且强大的工具,可以用来实现各种网络通信任务,包括模拟POST提交。理解并掌握这种技术,对于提升PHP开发者的技能和解决问题的能力大有裨益。
### PHP cURL 使用实例详解 #### 一、cURL简介 cURL 是一款强大的命令行工具,用于通过URL从或向服务器传输数据。...cURL 是一个非常强大且灵活的工具,掌握其使用方法对于进行网络编程非常有帮助。
在cUrl中,可以使用`curl_setopt`函数设置`CURLOPT_POSTFIELDS`选项来提交POST数据。而在我们的类中,可能已经封装了一个方法,如`postRequest($url, $postData)`,该方法接受URL和一个包含POST参数的数组,然后使用...
php function vcurl($url, $post = ”, $cookie = ”, $cookiejar = ”, $referer = ”){ $tmpInfo = ”; $cookiepath = getcwd().’./’.$cookiejar; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url);...