https请求SOAP webService接口

简介: https请求SOAP webService接口

本文章向大家介绍 https访问带有SOAP协议头,需要用户验证的webservice接口,主要包括https请求SOAP webService接口使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。


模拟soapui调用webservice

public static String soapSpecialConnection(String url,String params) throws Exception {
        String s = new String();
        StringBuilder soapHeader = new StringBuilder();
        // 传来字符串参数
        soapHeader.append(params);
        System.out.println("soapHeader=" + soapHeader);
        // 设置soap请求报文的相关属性
        // url从soapUI的request1的RAW标签的POST获取,url中不要有空格
        URL u = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) u.openConnection();
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setUseCaches(false);
        conn.setDefaultUseCaches(false);
        // Host,Content-Type,SOAPAction从soapUI的request1的RAW标签的Host,Content-Typ,SOAPActione获取
        conn.setRequestProperty("Host", "test.com:95443");
        conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
        conn.setRequestProperty("Accept-Encoding", "gzip,deflate");
        conn.setRequestProperty("Authorization", "Basic ABCBCBC");
        conn.setRequestProperty("Content-Length", String.valueOf(soapHeader.length()));
        conn.setRequestProperty("SOAPAction", "");
        conn.setRequestProperty("Username", "AAAAA");
        conn.setRequestProperty("Password", "BBBB");
        // 定义输出流
        OutputStream output = conn.getOutputStream();
        if (null != soapHeader) {
            byte[] b = soapHeader.toString().getBytes("utf-8");
            // 发送soap请求报文
            output.write(b, 0, b.length);
        }
        output.flush();
        output.close();
        // 定义输入流,获取soap响应报文
        InputStream input = conn.getInputStream();
        // 需设置编码格式,否则会乱码
        s = IOUtils.toString(input, "UTF-8");
        input.close();
        System.out.println("输出的xml=" + s);
        return s;
    }

既然是HTTPS请求,就需要绕过证书并击中web服务,使HTTPS SOAP请求绕过SSL证书。

public class ConnectHttps { 
    public static void main(String[] args) throws Exception { 
    /* 
* fix for 
* Exception in thread "main" javax.net.ssl.SSLHandshakeException: 
*  sun.security.validator.ValidatorException: 
*   PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
*    unable to find valid certification path to requested target 
*/ 
TrustManager[] trustAllCerts = new TrustManager[] { 
    new X509TrustManager() { 
     public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
     return null; 
     } 
     public void checkClientTrusted(X509Certificate[] certs, String authType) { } 
     public void checkServerTrusted(X509Certificate[] certs, String authType) { } 
    } 
}; 
SSLContext sc = SSLContext.getInstance("SSL"); 
sc.init(null, trustAllCerts, new java.security.SecureRandom()); 
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
// Create all-trusting host name verifier 
HostnameVerifier allHostsValid = new HostnameVerifier() { 
    public boolean verify(String hostname, SSLSession session) { 
     return true; 
    } 
}; 
// Install the all-trusting host verifier 
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); 
/* 
* end of the fix 
*/ 
    } 
}

客户端调用



String webServiceAndSoap = soapSpecialConnection(url,requestXml);System.out.println(webServiceAndSoap);


以上是https请求SOAP webService接口全部内容了。

相关文章
|
6天前
|
安全 API 网络安全
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
|
1月前
|
XML 前端开发 Java
JAVA调试webservice接口
JAVA调试webservice接口
22 0
|
1月前
|
安全 网络安全 数据安全/隐私保护
HTTPS 请求中的证书验证详解(Python版)
HTTPS 请求中的证书验证详解(Python版)
105 0
|
4月前
|
安全 Java 网络安全
RestTemplate进行https请求时适配信任证书
RestTemplate进行https请求时适配信任证书
115 3
|
3月前
|
JavaScript 前端开发 Java
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
|
4月前
|
XML Java API
使用WebService接口进行数据通信
使用WebService接口进行数据通信
|
5月前
|
Web App开发 存储 网络安全
Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题
本文介绍了在 Mac 上使用的 HTTP 和 HTTPS 抓包工具 Charles 的配置方法。首先,强调了安装证书对于抓取 HTTPS 请求的重要性,涉及 PC 和手机端。在 PC 端,需通过 Charles 软件安装证书,然后在钥匙串访问中设置为始终信任。对于 iOS 设备,需设置 HTTP 代理,通过电脑上的 IP 和端口访问特定网址下载并安装证书,同时在设置中信任该证书。配置 Charles 包括设置代理端口和启用 SSL 代理。完成这些步骤后,即可开始抓包。文章还提及 Android 7.0 以上版本可能存在不信任用户添加 CA 证书的问题,但未提供解决办法。
1353 0
Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题
|
5月前
|
网络协议 前端开发 Java
网络原理 - HTTP / HTTPS(4)——构造http请求
网络原理 - HTTP / HTTPS(4)——构造http请求
56 1
|
4月前
|
XML Java API
使用WebService接口进行数据通信
使用WebService接口进行数据通信
|
5月前
|
JSON 安全 Java
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
73 0