PHP中使用cURL库模拟网络通信

目录

Ajax技术受到跨域请求的限制,解决方法之一就是用PHP实现代理访问。PHP中用curl库实现网络访问。

PHP中使用curl库比较简单,可以编写一个类来实现网络访问功能。google api php client中的apiCurlIO类就是个不错的例子,我就参照该类,写了一个简单的网络IO类。
主要分为以下几步:
初始化curl
$curl = curl_init();
设置参数,包括

网址

curl_setopt($curl, CURLOPT_URL, $request->getUrl());

HTTP请求头

curl_setopt($curl, CURLOPT_HTTPHEADER, $parsed);

POST参数

curl_setopt($curl, CURLOPT_POSTFIELDS, $request->getPostBody());

SSL验证

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl返回结果的方式

curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);

运行curl对象,获取返回结果
$respData = curl_exec($curl);

获取返回信息

$respHttpCode = (int) curl_getinfo($curl, CURLINFO_HTTP_CODE);

$respHeaderSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);

获取错误信息

$curlErrorNum = curl_errno($curl);

$curlError = curl_error($curl);

关闭curl对象
curl_close($curl);
参见:
PHP文档的curl说明
PHP的cURL库功能简介:抓取网页,POST数据及其他