zoukankan      html  css  js  c++  java
  • java代码POST方式请求SOAP

     1 package com.http.soap;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStreamReader;
     6 import java.nio.charset.Charset;
     7 
     8 import org.apache.http.HttpEntity;
     9 import org.apache.http.client.ClientProtocolException;
    10 import org.apache.http.client.config.RequestConfig;
    11 import org.apache.http.client.methods.CloseableHttpResponse;
    12 import org.apache.http.client.methods.HttpPost;
    13 import org.apache.http.entity.StringEntity;
    14 import org.apache.http.impl.client.CloseableHttpClient;
    15 import org.apache.http.impl.client.HttpClientBuilder;
    16 import org.apache.http.util.EntityUtils;
    17 
    18 public class HttpPostToSoap {
    19     static int socketTimeout = 10000;// 请求超时时间
    20     static int connectTimeout = 10000;// 传输超时时间
    21     static final String soap = "text/xml;charset=UTF-8";
    22     static final String soap11 = "application/soap+xml;charset=UTF-8";
    23 
    24     /**
    25      * 同步HttpPost请求发送SOAP格式的消息
    26      * 
    27      * @param webServiceURL
    28      *            WebService接口地址
    29      * @param soapXml
    30      *            消息体
    31      * @param soapAction
    32      *            soapAction
    33      * @param soapType
    34      *            soap版本
    35      * @return
    36      */
    37     public static String doPostSoap(String webServiceURL, String soapXml,String soapAction, String soapType) {
    38 //        BufferedReader reader = null;  
    39         // 创建HttpClient
    40         HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    41         CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
    42         // 创建Post请求
    43         HttpPost httpPost = new HttpPost(webServiceURL);
    44         // 设置请求和传输超时时间
    45         RequestConfig requestConfig = RequestConfig.custom()
    46                 .setSocketTimeout(socketTimeout)
    47                 .setConnectTimeout(connectTimeout).build();
    48         httpPost.setConfig(requestConfig);
    49         // 设置Post请求报文头部
    50         httpPost.setHeader("Content-Type", soapType);
    51         httpPost.setHeader("SOAPAction", soapAction);
    52         // 添加报文内容
    53         StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8"));
    54         httpPost.setEntity(data);
    55         try {
    56             // 执行请求获取返回报文
    57             CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
    58             HttpEntity httpEntity = response.getEntity();
    59             if (httpEntity != null) {
    60                 // 打印响应内容
    61                 return EntityUtils.toString(httpEntity, "UTF-8");
    62             }
    63 //            if (httpEntity != null) {  
    64 //                reader = new BufferedReader(new InputStreamReader(httpEntity .getContent(), "UTF-8"));  
    65 //                StringBuffer sb = new StringBuffer();  
    66 //                String line = null;  
    67 //                while ((line = reader.readLine()) != null) {  
    68 //                    sb.append(line);  
    69 //                    sb.append("
    ");  
    70 //                }  
    71 //                return sb.toString();  
    72 //            }  
    73             // 释放资源
    74             closeableHttpClient.close();
    75         } catch (ClientProtocolException e) {
    76             e.printStackTrace();
    77         } catch (IOException e) {
    78             e.printStackTrace();
    79         }
    80         return null;
    81     }
    82 }

    测试

    package com.http.soap;
    
    public class TestSoap {
        
        public static void main(String[] args) {
            String soapXml=“请求报文”;
            String result=HttpToSoap.doPostSoap("http://192.168.18.161:8080/mtosi", soapXml, "", HttpToSoap.soap);
            System.out.println(result);
        }
    
    }
  • 相关阅读:
    k8s记录-helm部署(九)
    k8s记录-master组件部署(八)
    Hadoop记录-Apache hadoop+spark集群部署
    k8s记录-ubuntu安装docker
    Nginx记录-Proxy_pass多个应用配置(转载)
    Java动态调用脚本语言Groovy
    05 吸收应用-会整理还不够?教你吸收、联想、输出、应用
    02 超级搜索术——资源搜索:全面、快速查找全网你想要的任何信息、情报
    01 超级搜索术——信息搜索:全面、快速查找全网你想要的任何信息、情报
    长赢指数基金投资计划-201807(一补仓)
  • 原文地址:https://www.cnblogs.com/lhq1996/p/13035643.html
Copyright © 2011-2022 走看看