CURL是一个非常强大的开源库,支持很多协议,我们可以使用curl方法解决PHP请求JAVA接口
1.通过POST方法请求java接口:function http_post_advertise($url,$data){ //封装curl方法
$ch = curl_init(); //初始化
curl_setopt($ch, CURLOPT_URL, $url); //请求地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
//https协议需要以下两行,否则请求不成功
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//post方法所需要的参数
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER,array());
$result = curl_exec($ch);
curl_close($ch);
return $result; //返回所获取的方法
}
$url='https://www.tpf.com';
$data1='PC';
$data2='1530523065500000';
$data_article=[
'product'=>$data1,
'companyId'=>$data2,
'advBitId'=>'1531116879086000'
];
$http_article = http_post_advertise($url,$data_article); //调用方法
$arr_article = json_decode($http_article,true); //获取json数据并转换成php能解析的格式
$res_article = $arr_article['result']; //获取json数据result部分
2.通过GET方法请求JAVA接口:$a="hello";
$url='http://47.100.105.191:8081/casecode/api/phptest.do?test='.$a;
$html = file_get_contents($url);
$arr = json_decode($html,true);
其他接口
接口文档示例UID=Y100000127&DATA=
{
"request": {
"head": {
"funcode": "DCDACCYE",
"userid": "Y100000127"
},
"body": {
…………… //见具体API接口说明
}
}
}
我们做PHP很少看到类似这样的接口
也就是UID字符串拼接一个DATA json数据,在java里面应该是分开请求的,但我们用PHP的时候,需要把他们拼接起来再发送
我们用post方式提交作为示例$url = 'UID=Y100000127&DATA={"request": {"head": {"funcode": "DCDACCYE", "userid": "Y100000127"}, "body": {} } }';
$http_article = http_post_advertise($url,[]); //调用方法