CURL是一个非常强大的开源库,支持很多协议,我们可以使用curl方法解决PHP请求JAVA接口直线导轨滑台
1.通过POST方法请求java接口:
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 | 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接口:
1 2 3 4 | $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); |
其他接口
接口文档示例
1 2 3 4 5 6 7 8 9 10 11 12 | UID=Y100000127&DATA= {
"request" :{
"head" :{
"funcode" : "DCDACCYE" ,
"userid" : "Y100000127"
},
"body" :{ …………… //见具体API接口说明
}
} } |
我们做PHP很少看到类似这样的接口
也就是UID字符串拼接一个DATA json数据,在java里面应该是分开请求的,但我们用PHP的时候,需要把他们拼接起来再发送
我们用post方式提交作为示例
1 2 | $url = 'UID=Y100000127&DATA={"request":{"head":{"funcode":"DCDACCYE","userid":"Y100000127"},"body":{}}}' ; $http_article =http_post_advertise( $url ,[]); //调用方法 |