精华内容
下载资源
问答
  • 实习期间一个任务需要对接一个webservice接口,获取返回数据并更新到自己的数据库中 学习参考 webservice基础 个人总结 webservice是基于http的 只不过请求体是为xml格式 传递的数据格式: <Envelope> &...

    背景

    实习期间一个任务需要对接一个webservice接口,获取返回的数据并更新到自己的数据库中

    学习参考

    webservice基础

    个人总结

    • webservice是基于http的
    • 只不过请求体是为xml格式
    • 传递的数据格式:
    <Envelope>
          <Header></Header>
          <Body>
               <方法名>
               		方法参数
            </方法名>
          </Body>
    </Envelope>
    
    • 示例
     String str = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
                "   <soapenv:Header/>" +
                "   <soapenv:Body>" +
                "      <tem:methodName>" +
                "         <tem:key>value</tem:key>" +
                "      </tem:methodName>" +
                "   </soapenv:Body>" +
                "</soapenv:Envelope>";
    
    • 通过URLConnect调用webservice服务,获取数据
    		String responseBody = "";
            try {
                // 1 指定WebService服务的请求地址:
                String wsUrl = “host/serviceAddress”
                // 2 创建URL:
                URL url = new URL(wsUrl);
                // 3 建立连接,并将连接强转为Http连接
                URLConnection conn = url.openConnection();
                HttpURLConnection con = (HttpURLConnection) conn;
    
                //设置请求方式和请求头:
                con.setDoInput(true); // 是否有入参
                con.setDoOutput(true); // 是否有出参
                con.setRequestMethod("POST"); // 设置请求方式
                con.setRequestProperty("content-type", "text/xml;charset=UTF-8");
    			//设置请求体
    			String requestBody = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
                "   <soapenv:Header/>" +
                "   <soapenv:Body>" +
                "      <tem:methodName>" +
                "         <tem:key>value</tem:key>" +
                "      </tem:methodName>" +
                "   </soapenv:Body>" +
                "</soapenv:Envelope>";
    
                // 6,通过流的方式将请求体发送出去:
                OutputStream out = con.getOutputStream();
                out.write(requestBody.getBytes());
                out.close();
                // 7,服务端返回正常:
                int code = con.getResponseCode();
                if (code == 200) {// 服务端返回正常
                    InputStream is = con.getInputStream();
                    byte[] b = new byte[1024];
                    StringBuffer sb = new StringBuffer();
                    int len = 0;
                    while ((len = is.read(b)) != -1) {
                        String str = new String(b, 0, len, "UTF-8");
                        sb.append(str);
                    }
                    responseBody = sb.toString();
                    // responseBody中的数据格式为xml
                    is.close();
                }
                con.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
    		//使用hutool工具类,取出在xml结点中的最终数据
    		JSONObject json = XML.toJSONObject(responseBody);
            responseBody = json.getJSONObject("soap:Envelope").getJSONObject("soap:Body").getJSONObject("XXXResponse").getJSONObject("XXXResult").get("Result");
    
    
    展开全文
  • 图解Webservice接口返回XML说明

    千次阅读 2019-09-19 23:20:43
    绑定类/调用方法,传输数据格式,返回数据格式说明 浏览器调用接口wsdl,返回的xml可能没有这部分,不影响webservice使用 浏览器调用接口wsdl,返回的xml可能没有这部分,不影响webservice使用 请求地址说明 ...

    绑定类/调用方法,传输数据格式,返回数据格式说明

    浏览器调用接口wsdl,返回的xml可能没有这部分,不影响webservice使用

    浏览器调用接口wsdl,返回的xml可能没有这部分,不影响webservice使用

     请求地址说明

    展开全文
  • JAVA Webservice接口 返回中文乱码

    千次阅读 2020-05-02 15:26:56
    最近调用Webservice接口时,遇到接收乱码的问题 最开始用soapUI测试看XML结果是正常的,返回结果大概是这样(只截取了json部分结果) {"state":0,"message":"流程启动成功","seqno":"202005020009"} 后来在JAVA...

    最近调用Webservice接口时,遇到接收乱码的问题

    最开始用soapUI测试看XML结果是正常的,返回结果大概是这样(只截取了json部分结果)

    {"state":0,"message":"流程启动成功","seqno":"202005020009"}

    后来在JAVA后台使用HttpURLConnection调用(全部代码在后面),发现返回来的中文部分全部乱码,如下

    {"state":0,"message":"娴佺▼鍚姩鎴愬姛","seqno":"202005020009"}

    在测试JAVA文件跑JAVA Application中返回的是正常中文,测试JAVA文件里代码与Tomcat上跑的代码是完全一样的,于是打断点查找原因,发现在下面这一步

    InputStreamReader isr = new InputStreamReader(is)

    isr里的结果就是乱码,上网查InputStreamReader编码格式,找到了这篇文章:InputStreamReader 出现乱码问题如何解决?

    大概找到原因,于是试着把编码主动设置为UTF-8,像下面这样,问题解决。若大家解决不了,可尝试其他几种编码方式。

    InputStreamReader isr = new InputStreamReader(is, "UTF-8");  

    贴上整个调用接口的代码,如下,也是一般的使用HttpURLConnection调用Webservice接口的代码

    public String callInterface(String URL, String requestMethod, String contentType, String SOAPAction, String soapXml) throws IOException{
    		String result = "";
    		//第一步:创建服务地址
    		URL url = new URL(URL);
    		//第二步:打开一个通向服务地址的连接  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            //第三步:设置参数  
            //3.1发送方式设置:POST必须大写  
            connection.setRequestMethod(requestMethod);  
            //3.2设置数据格式:content-type  SOAPAction
            connection.setRequestProperty("content-type", contentType);
            connection.setRequestProperty("SOAPAction", SOAPAction);
            //3.3设置输入输出,因为默认新创建的connection没有读写权限,  
            connection.setDoInput(true);  
            connection.setDoOutput(true);  
            //第四步:组织SOAP数据,发送请求  
            System.out.println("requestXml:"+soapXml);
            connection.connect();//可能非必须
            //将信息以流的方式发送出去
            OutputStream os = connection.getOutputStream();  
            os.write(soapXml.getBytes("UTF-8"));  
            os.flush();
            os.close();
            //第五步:接收服务端响应,打印  
            int responseCode = connection.getResponseCode();  
            if(200 == responseCode){//表示服务端响应成功  
            	//获取当前连接请求返回的数据流
                InputStream is = connection.getInputStream();  
                InputStreamReader isr = new InputStreamReader(is, "UTF-8");  
                BufferedReader br = new BufferedReader(isr);  
                  
                StringBuilder sb = new StringBuilder();  
                String temp = null;  
                while(null != (temp = br.readLine())){  
                    sb.append(temp);  
                }  
                /**
                 * 打印结果
                 */
                //response = sb.toString();
                result = sb.toString();
                System.out.println("返回XML:"+ sb.toString());  
                is.close();  
                isr.close();  
                br.close(); 
            }  
            os.close();
    		return result;
    	}
    展开全文
  • WebService接口数据调用

    2018-12-14 11:41:32
    public function webService($url,$data){  //WebService接口数据调用  ini_set('soap.wsdl_cache_enabled', 0); //关闭wsdl缓存  libxml_disable_entity_loader(false);  $opts = arr...

       public function webService($url,$data){
                    //WebService接口数据调用
            ini_set('soap.wsdl_cache_enabled', 0); //关闭wsdl缓存
            libxml_disable_entity_loader(false);
            $opts = array(
                'ssl'   => array(
                        'verify_peer'          => false
                    ),
                'https' => array(
                        'curl_verify_ssl_peer'  => false,
                        'curl_verify_ssl_host'  => false
                 )
            );
            $streamContext = stream_context_create($opts);
            $client = new \SoapClient($url,
              array(
                  'stream_context'    => $streamContext
              ));
       
            $request_data = '<Request>';
            foreach ($data as $key => $value) {
                $request_data .= '<'.$key.'>'.$value.'</'.$key.'>';
            }   
            $request_data .= '</Request>';
            $res = $client->WX_CALL($request_data);
            if (empty($res)) {
                echo "用户信息获取失败!";
            }
            $data = array();
            $xml = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);
            foreach ($xml as $k => $v) {
                $data[(string) $k] = (string) $v;
            }
            return $data;

        }

    展开全文
  • 调用webservice接口数据不回滚问题 使用cxf+spring框架开发webservice接口,在开发一个具有保存数据的接口功能时,如果数据发生了异常,对service层无论使用了xml配置声明式事务管理还是使用了使用@Transactional注解...
  • 新手,第一次尝试使用微信小程序访问WebService接口。 使用Microsoft Visual Studio新建了一个WebService项目,发布后,按照常规流程部署到IIS,使用浏览器访问接口,测试正常,使用外部域名访问接口,测试正常,...
  • 最近在做一个springboot的前置服务调用c#.net的webservice接口返回的是json字符串,发现.net 的webservice返回的数据数据的外层都会包含一层xml的定义,而我只想要里面的json字符串。 最后的解决方法: 1、...
  • android获取webservice接口数据

    千次阅读 2015-08-09 16:13:09
    前言 其实我不怎么会这个,我是边看源码边做翻译的,突然... 1、首先是给listview填充数据,那么就得发送网络请求对吧,看下面:2.我们点击cgquery方法到接口的实现类去,如下:3.我们先看BeanGeneralInquiries这个
  • Webservice接口数据抽取_kettel

    千次阅读 2018-05-23 15:23:40
    在进行ETl数据抽取的时,有时会遇到Webservice接口服务的情况;这里对kettel工具和java脚本两种抽取方式来简单的介绍一下。由于篇幅较长,我分四篇来介绍;下一篇地址: (Webservice接口数据抽取_kettel&lt;二...
  • ETL KETTLE 中利用Httpclient 调用webservice接口获取XML数据,并解析XML 数据。 完整的KTR实例
  • java访问WebService接口返回xml

    万次阅读 2011-01-21 16:45:00
    * 概述:纯java方式访问远程WebService接口返回的xml格式的数据保存在本地 */ public class DomXMLString { private static String SERVICES_HOST = "www.webxml.com.cn"; // 远程WebService接口url ...
  • * 概述:纯java方式访问远程WebService接口返回的xml格式的数据保存在本地 */ public class DomXMLString { private static String SERVICES_HOST = "www.webxml.com.cn"; // 远程WebService接口url private...
  • WebService接口的生成和调用(WebService接口

    万次阅读 多人点赞 2019-03-01 13:26:23
    一:WebService的服务端发布 1:发布web程序服务端发布 2:本地发布 二:Webservice客户端调用: 1:本地生成代码,直接调用: 2、利用dos命令生成代码,和第一种基本一致 3:利用apache的AXIS直接调用远程...
  • 近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限,还请大家...
  • Android调用webservice返回数据为空

    千次阅读 2016-10-11 17:25:12
    最近做Android项目的时候,调用一个webservice接口返回的数据一直为空,但是在网页上测试的时候该接口返回数据是正常的。于是用log打印出来是:java.net.SocketTimeoutException异常,原因是调用webservice时设置的...
  • WebService接口数据传输加密

    千次阅读 2019-06-19 13:18:00
    返回结果 2.固定密文创建 密文创建有很多种方式,在这篇文章使用的是从我出生那天到现在毫秒数,当然也可以使用其他。。。 3.实现 首先创建一个 类:SecretServer public class SecretServ...
  • 用dom4j解析Webservice接口返回的XML

    千次阅读 2018-12-30 11:01:19
    import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import java.util.HashMap; import java.util.List; import java.util.Map;...publ...
  • webservice返回数据类型

    2013-11-28 15:25:48
    在做java webservice练习的时候,返回一个字符串正常,但是我想返回一个对象的时候就报错,错误信息是什么未发现序列化的问题,实现了序列化Serializeble接口还是不行,经过网上搜索得出结论:webservice是为了不同...
  • python调用WEBSERVICE接口

    2017-07-12 09:28:50
    python调用WEBSERVICE接口
  • 最近Java后台使用HttpURLConnection调用webservice接口时,返回500错误,代码如下(URL/SOAPAction等使用的假数据) public void callInterface() throws IOException{ try { //第一步:创建服务地址 ...
  • 我的第一次WebService接口开发

    万次阅读 多人点赞 2019-05-09 16:58:09
    最近项目上需要对接WebService接口,之前从来没有用过,这次都遇见了。记录下基础的使用和我遇见的问题。 正文 概述 WebService接口百度一搜,各个介绍的都非常详细,由于刚开始没接触,看的也不是很懂。首先记住一...
  • 近日项目用到Ksoap2访问标准webservice,且fan
  • 动态调取webservice返回json数据并处理

    热门讨论 2013-04-16 23:28:06
    动态调取webservice返回json数据,并把数据绑定到gridview中
  • Unity3D访问Webservice返回数据集并解析
  • JAVA使用http请求,实现webservice接口数据调用 前言 第一次接触webservice的调用,在经过了这个过程之后,不得不说,比较麻烦。总结一下网上的各种方案 1、直接AXIS调用远程的web service 2、直接SOAP调用远程的...
  • 本事例是asp调用webservice接口,并获取返回的xml数据及解析! Response.Write "测试时间:"&now()&"" dim url,SOAPAction,HOST url=...
  • WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据
  • Webservice接口数据抽取_kettel<一>

    万次阅读 热门讨论 2016-05-03 10:23:53
    在进行ETl数据抽取的时,有时会遇到...这样我们就确定该服务是没有问题的,接下来我们就来演示抽取getWeatherbyCityName方法的返回数据。 b、用kettel调该接口,需要将接口转成URL的形式( 加上?WSDL ): ...
  • java webService接口实现查询数据库返回一个XML,用dom4j去操作XML,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,533
精华内容 11,013
关键字:

webservice接口返回数据