php 調用java接口

 public function query(){
        $wsdl= 'http://*********************';  //接口地址
        
        try{
        
            libxml_disable_entity_loader(false);
            $options=[
                'soap_version'=>SOAP_1_1,
                'trace'=>true,//是否啓用調試信息
                'exceptions'=>true,//如果有錯誤發生的時候是否拋出SoapFault類型的異常
      //        'connection_timeout'=>'30'//連接超時,單位秒。
      //        'typemap'=>'30'//選項爲類型映射數組,鍵名爲類型名稱、命名空間等
                'cache_wsdl'=>WSDL_CACHE_NONE,//類型有WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY or WSDL_CACHE_BOTH
      //        'user_agent'=>'',//客戶端發送POST請求的時候在Header信息中添加的User-Agent頭信息
                'wsdl_cache_ttl'=>WSDL_CACHE_NONE,
                'encoding'=>'utf-8',
            ];
            $client = new \SoapClient($wsdl, $options);

            //拼接發送數據例
            $data=[];
            $data['name']         = '';  
            $data['tel']          = '';  
           

            $xmlData=[
				'add'  =>'',
            ];

            $xml='<?xml version="1.0" encoding="UTF-8"?>';
            $bodyXml=$this->arrayToXml($xmlData,'root');
            $xml=$xml.$bodyXml;
//          $xml=iconv('UTF-8', 'GBK',$xml);
            $params=[
                'namne'  =>$data['name'],
                'tel'    =>$data['tel'],
                'xmldoc' =>$xml ,
            ];
            $result=$client->queryObject($params);
			if (!$result->return){
                
                exit(json_encode(['code'=>'0','msg'=>'響應數據爲空'],JSON_UNESCAPED_UNICODE));
            }
//            $result=iconv('GBK', 'UTF-8',$result->return);

			$result->return=str_replace('<?xml version="1.0" encoding="GBK"?>','', $result->return);

            $redataArr=xmlToArray($result->return);

            if (!$redataArr){
                exit('響應數據解析失敗');
            }
            return [
                'code'=>1,
                'msg'=>'成功',
                'data'=>$redataArr
            ];
        }catch (\SOAPFault $e) {
            exit('查詢信息失敗,'.$e->getMessage());
        }catch (\Exception $exception){
           exit('查詢信息失敗,系統異常:'. $exception->getMessage());
        }
    }
/**
     * 數組轉xml
     * @param $array
     * @return string
     */
    function arrayToXml($array,$type){
        $xml = "<$type><QueryCondition>";
        foreach ($array as $key=>$val){
            if(is_array($val)){
                $xml.="<".$key.">".$this->arrayToXml($val,$type)."</".$key.">";
            }else{
                $xml.="<".$key.">".$val."</".$key.">";
            }
        }
        $xml.="</QueryCondition></$type>";
        return $xml;
    }


   

```php
 /**
     * @param $xml
     * @return string
     * 獲取XML
     */
     function xml($xml){
        $p = xml_parser_create();
        xml_parse_into_struct($p, $xml, $vals, $index);
        xml_parser_free($p);
        $data = "";
        foreach ($index as $key=>$value) {
            if($key == 'xml' || $key == 'XML') continue;
            $tag = $vals[$value[0]]['tag'];
            $value = $vals[$value[0]]['value'];
            $data[$tag] = $value;
        }
        return $data;
    }

發佈了0 篇原創文章 · 獲贊 14 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章