您的位置:首页 > 编程语言 > PHP开发

php使用curl发送请求

2013-01-15 18:03 441 查看
source code:

/**
* 执行一个 HTTP 请求
*
* @param string    $url    执行请求的URL
* @param mixed $params 表单参数
*                          可以是array, 也可以是经过url编码之后的string
* @param mixed $cookie cookie参数
*                          可以是array, 也可以是经过拼接的string
* @param string    $method 请求方法 post / get
* @param string    $protocol http协议类型 http / https
* @return array 结果数组
*/
static public function makeRequest($url, $params, $cookie, $method='post', $protocol='http')
{
$query_string = self::makeQueryString($params);
$cookie_string = self::makeCookieString($cookie);
$ch = curl_init();
if ('get' == $method)
{
curl_setopt($ch, CURLOPT_URL, "$url?$query_string");
}
if ($protocol == 'https'){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
else
{
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
}
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
//  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// disable 100-continue
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));

if (!emptyempty($cookie_string))
{
curl_setopt($ch, CURLOPT_COOKIE, $cookie_string);
}

if ('https' == $protocol)
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}

$ret = curl_exec($ch);
$err = curl_error($ch);

if (false === $ret || !emptyempty($err))
{
$errno = curl_errno($ch);
$info = curl_getinfo($ch);
curl_close($ch);

return array(
'result' => false,
'errno' => $errno,
'msg' => $err,
'info' => $info,
);
}

curl_close($ch);

return array(
'result' => true,
'msg' => $ret,
);

}


本文出自 “FlyHome” 博客,请务必保留此出处http://superfly81.blog.51cto.com/6302302/1118910
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: