okHttp根据url,methodName访问webService

使用到的ohHttp.jar下载地址:https://download.csdn.net/download/qq_37160920/10576350

根据提供的webServiceUrl,methodName,调用接口,并处理返回的xml格式的结果.

代码可以使用postMan生成:

@Test
    public void checkValue() {
        String url = "http://127.0.0.1:8001/portal.integration/service/IntegrateService";
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("text/xml");
        //设置soap请求头,并设置方法名和参数
        RequestBody body = RequestBody.create(mediaType, "<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xxx=\"http://tempuri.org/xxx.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n <soapenv:Header></soapenv:Header>\r\n <soapenv:Body>\r\n <xxx:checkValue xmlns=\"http://www.w3.org/2001/XMLSchema\">\r\n    <sId>123456</sId>\r\n    <uId>111111</uId>\r\n </xxx:checkValue>\r\n </soapenv:Body>\r\n</soapenv:Envelope>");
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .addHeader("SOAPAction", "")
                .addHeader("Content-Type", "text/xml; charset=utf-8")
                .addHeader("cache-control", "no-cache")
                .build();
        String result = "";
        try {
            Response response = client.newCall(request).execute();
 
            int code = response.code();
            if (200 == code) {
                String xmlResult = response.body().string();
                if (StringUtils.isNotEmpty(xmlResult)) {
                    //checkValueResponse,checkValueReturn是根据xmlResult获取的
                    result = readStringXml(xmlResult, "checkValueResponse", "checkValueReturn");
                System.out.println("--------"+result);
                }
            }
 
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

返回的数据(xmlStr):

 

处理返回的xml格式数据:

 public String readStringXml(String xmlStr, String node1, String node2) {
        Document doc = null;
        String result = "";
        try {
            doc = DocumentHelper.parseText(xmlStr); //将字符串转换为xml
            Element rootElt = doc.getRootElement();//获取根节点
            System.out.println("根节点:" + rootElt.getName());
            Iterator iters = rootElt.elementIterator("Body"); //获取根节点下的子节点
            Element Bodyelement = rootElt.element("Body");
 
            if (Bodyelement != null && Bodyelement.element(node1) != null) {
                Element valueElement = Bodyelement.element(node1).element(node2);
                if (valueElement != null) {
                    //0,成功,1失败
                    result = valueElement.getText();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }


 
————————————————
版权声明:本文为CSDN博主「GL213」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37160920/article/details/86504584

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值