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,[]); //调用方法