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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章