您現在的位置是:首頁 > PHP實例

李清波 2019-12-19 PHP實例 286

php使用curl方法請求java接口

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


評論