php发送curlpost get发送头信息 不接受参数不返回头信息


php发送curlpost get发送头信息 不接受参数不返回头信息
查找相关文章:php curl request

php发送curlpost get发送头信息 不接受参数不返回头信息

    /**
	 * 发送接口请求
	 * @param string $url
	 * @param array $params
	 * @param string $type
	 * @return boolean|mixed
	 */
	public function send_request($url, $params=array(), $type='get',$header=array(),$timeout=10){
		$type = strtolower($type);		
		$header = $this->_send_header($header); //处理头部信息

		$curl = curl_init();
				
		if($type == 'get'){
			if(substr($url, -1) !== "?"){
				$url .= "?";
			}			
			$param_str = '';
			if(!empty($params) && is_array($params)){
				foreach ($params as $param_key=>$param_value){
					$param_str .= "&".$param_key."=".$param_value;
				}
			}
			$url .= $param_str;	
			
			curl_setopt($curl, CURLOPT_URL, $url);			
			curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
			curl_setopt($curl, CURLOPT_HEADER, 0);			
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
			$return_data = curl_exec($curl);
			
		}else{	
			curl_setopt($curl, CURLOPT_URL, $url);
			curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
			curl_setopt($curl, CURLOPT_HEADER, 0);
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($curl, CURLOPT_POST, 1);
			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
			curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
			$return_data = curl_exec($curl);			
		}
		
		$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
		$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
		
		curl_close($curl);
		
		if(intval($code) >= 400){
			//处理错误的http状态
			//
			return false;
		}
		
		$obj = @json_decode($return_data);
		if(!$obj || !isset($obj->ret)){
			//返回内容错误,记录日志
			//
			return false;
		}
	
		
		return $obj;
	}
	
	
	/**
	 * 处理头部信息
	 * @param array $headers
	 * @return multitype:string
	 */
	private function _send_header($header){		
		if(empty($header)){
			return array();
		}
		$_header = array();
		foreach($header as $key=>$val){
			$_header[] = $key.': '.$val;
		}
		return $_header;
	}


  • 你可能对这些文章感兴趣