使用httpclient访问webservice(需用户名/密码登录)

本文提供了一个使用Java发送SOAP请求的示例代码。该代码通过HTTP客户端向指定的WSDL地址发送带有基本认证的POST请求,并将XML格式的数据作为请求体。代码展示了如何设置请求头、进行基本认证以及处理响应。

代码如下:

#wsdl为访问的wsdl地址(登陆后wsdl文件中的soap:address);result为传给wsdl的数据,为xml格式;userpass为username:password(如:admin:g5)
public static String post(String wsdl, String result, String userpass) {
        if(StringUtils.isEmpty(wsdl)) {
            return null;
        }

        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpEntity entity = new StringEntity(result, "utf-8");
        HttpPost hp = new HttpPost(wsdl);
        hp.addHeader("Content-Type","text/xml");
        hp.addHeader(new BasicHeader("Authorization","Basic " + Base64.encode(userpass.getBytes())));
        log.log(Level.INFO , "加密后内容:" + new BasicHeader("Authorization","Basic " + Base64.encode(userpass.getBytes())));
        hp.setEntity(entity);

        HttpEntity Rentity = null;
        try {
            CloseableHttpResponse response = httpclient.execute(hp);
            try {
                Rentity = response.getEntity();
                if (Rentity != null) {
                    log.log(Level.INFO, "Response content: " + EntityUtils.toString(Rentity, "UTF-8"));
                }
            } finally {
                response.close();
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接,释放资源
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return entity.toString();
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值