PHP請求 webservice接口

PHP請求webservice接口須要用到soap擴展,因此要先開啓php.ini中的extension=php_soap.dll;

在實際項目應用中封裝了一個方法進行調用,

public function requestSoap($url, $fun, $params) {
    $url = $url . '?wsdl';//接口地址
    $params = array(
        'parameters' => $params  //$param = array('username'=>'test','pwd'=>'111');
    );

    try {
        libxml_disable_entity_loader(false);
        $client = new \SoapClient($url);
        $res = $client->__soapCall($fun, $params);
        $funRe = $fun . 'Result';//在php調用某個方法後,其soap對象,就會自動產生一個Result方法,以方便顯示調用結果
        $ret = json_decode($res->$funRe, true);
    } catch (\Exception $e) {
        $ret = $e->getMessage();
    }
    //var_dump($ret);
    return $ret;
}
複製代碼

注意:在調試過程當中,會發現不少方法不起做用,提示不存在或不可用,是服務器端PHP的soap的wsdl緩存形成的!

兩種方法解決:

1.清除soap緩存:打開php.ini,找到soap.wsdl_cache_dir="D:/wamp/tmp",這是soap的wsdl緩存的文件夾路徑,刪除該路徑下的wsdl文件便可;
2.關閉saop緩存:打開php.ini,找到soap.wsdl_cache_enabled=1,將其改成soap.wsdl_cache_enabled=0,重啓服務便可。
相關文章
相關標籤/搜索