This commit is contained in:
75
SyncPost/Http.php
Normal file
75
SyncPost/Http.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/**
|
||||
* HTTP请求类
|
||||
* @author xiaopengzhu <xp_zhu@qq.com>
|
||||
* @version 2.0 2012-04-20
|
||||
*/
|
||||
class Http
|
||||
{
|
||||
/**
|
||||
* 发起一个HTTP/HTTPS的请求
|
||||
* @param $url 接口的URL
|
||||
* @param $params 接口参数 array('content'=>'test', 'format'=>'json');
|
||||
* @param $method 请求类型 GET|POST
|
||||
* @param $multi 图片信息
|
||||
* @param $extheaders 扩展的包头信息
|
||||
* @return string
|
||||
*/
|
||||
public static function request( $url , $params = array(), $method = 'GET' , $multi = false, $extheaders = array())
|
||||
{
|
||||
if(!function_exists('curl_init')) exit('Need to open the curl extension');
|
||||
$method = strtoupper($method);
|
||||
$ci = curl_init();
|
||||
curl_setopt($ci, CURLOPT_USERAGENT, 'PHP-SDK OAuth2.0');
|
||||
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 3);
|
||||
$timeout = $multi?30:3;
|
||||
curl_setopt($ci, CURLOPT_TIMEOUT, $timeout);
|
||||
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($ci, CURLOPT_HEADER, false);
|
||||
$headers = (array)$extheaders;
|
||||
switch ($method)
|
||||
{
|
||||
case 'POST':
|
||||
curl_setopt($ci, CURLOPT_POST, TRUE);
|
||||
if (!empty($params))
|
||||
{
|
||||
if($multi)
|
||||
{
|
||||
foreach($multi as $key => $file)
|
||||
{
|
||||
$params[$key] = '@' . $file;
|
||||
}
|
||||
curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
|
||||
$headers[] = 'Expect: ';
|
||||
}
|
||||
else
|
||||
{
|
||||
curl_setopt($ci, CURLOPT_POSTFIELDS, http_build_query($params));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'DELETE':
|
||||
case 'GET':
|
||||
$method == 'DELETE' && curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
|
||||
if (!empty($params))
|
||||
{
|
||||
$url = $url . (strpos($url, '?') ? '&' : '?')
|
||||
. (is_array($params) ? http_build_query($params) : $params);
|
||||
}
|
||||
break;
|
||||
}
|
||||
curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE );
|
||||
curl_setopt($ci, CURLOPT_URL, $url);
|
||||
if($headers)
|
||||
{
|
||||
curl_setopt($ci, CURLOPT_HTTPHEADER, $headers );
|
||||
}
|
||||
|
||||
$response = curl_exec($ci);
|
||||
curl_close ($ci);
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user