PHP与java接口对接使用json格式请求

PHP与java接口对接使用json格式请求

$datajson = json_encode($param);
$myheader= array(
		'Content-Type: application/json; charset=utf-8',
		'Content-Length: ' . strlen($datajson)
);
$result = http_curl($url, 'xml', $datajson, 6, FALSE, '',$myheader);

function http_curl($url, $method, $params, $timeout=10, $https=FALSE, $isReturnHead='', $curlheader=''){
	$curl = curl_init();
	
	$parastr = '';
	if(strtolower($method) == 'xml'){
		$parastr = $params;
	}else{
		if(!empty($params)){
			foreach ($params as $key => $value) {
				$parastr .= $key . '=' . urlencode($value) . '&';
			}
			$parastr = substr($parastr, 0, -1);
		}
	}
	
	if(strtolower($method) == 'post' || strtolower($method) == 'xml'){
		curl_setopt($curl, CURLOPT_POST, 1);
		curl_setopt($curl, CURLOPT_URL, $url);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $parastr);
	}else{
		curl_setopt($curl, CURLOPT_URL, $url . '?' . $parastr);
	}
	if($https){
		curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, FALSE);
		curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, FALSE);
	}
	if($isReturnHead){//返回response头部信息
		curl_setopt($curl, CURLOPT_HEADER, 1);   
	}else{
		curl_setopt($curl, CURLOPT_HEADER, 0);
	}
	if($curlheader){
		curl_setopt($curl,CURLOPT_HTTPHEADER,$curlheader);
	}
	curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout - 1);
	//调试时打开
	//curl_setopt($curl, CURLINFO_HEADER_OUT, true);
	
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$resp['body'] = curl_exec($curl);
	$resp['code'] = trim(curl_getinfo($curl, CURLINFO_HTTP_CODE));
	//$resp['debug'] = curl_getinfo($curl);
	$errno = curl_errno($curl);
	if($errno != 0){
		$resp['code'] = $errno;
		$resp['body'] = curl_error($curl);
	}
	curl_close($curl);
	return $resp;
}
原文地址:https://www.cnblogs.com/aworkstory/p/12573461.html