本文实例讲述了php的http请求封装。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/**
* 发送HTTP请求方法,目前只支持CURL发送请求
* @param string $url 请求URL
* @param array $params 请求参数
* @param string $method 请求方法GET/POST
* @return array $data 响应数据
*/
protected function http( $url , $params , $method = 'GET' , $header = array (), $multi = false) {
$opts = array (CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => $header );
/* 根据请求类型设置特定参数 */
switch ( strtoupper ( $method )) {
case 'GET' :
$opts [CURLOPT_URL] = $url . '&' . http_build_query( $params );
dump( $opts [CURLOPT_URL]);
break ;
case 'POST' :
//判断是否传输文件
$params = $multi ? $params : http_build_query( $params );
$opts [CURLOPT_URL] = $url ;
dump( $opts [CURLOPT_URL]);
$opts [CURLOPT_POST] = 1;
$opts [CURLOPT_POSTFIELDS] = $params ;
break ;
default :
throw new Exception( '不支持的请求方式!' );
}
/* 初始化并执行curl请求 */
$ch = curl_init();
curl_setopt_array( $ch , $opts );
$data = curl_exec( $ch );
$error = curl_error( $ch );
curl_close( $ch );
if ( $error )
throw new Exception( '请求发生错误:' . $error );
return $data ;
}
|
希望本文所述对大家PHP程序设计有所帮助。