前面有一篇使用HttpClient调用带参数的post接口方法,这里找到一篇使用HttpClient调用Soap协议接口的方式。

原文地址:httpclient妙用一 httpclient作为客户端调用webservice

备注:HttpClient可以同时传递带参数的头和body,都是在setEntity方法中

import java.io.IOException;
import java.net.SocketTimeoutException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;public class CallWebService {public static void main(String[] args) {CallWebService oAUtil = new CallWebService();String soapXml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ws=\"http://ws.gacl.me/\">\n" + "   <soapenv:Header/>\n" + "   <soapenv:Body>\n" + "      <ws:sayHello>\n" + "         <arg0>Hello World!</arg0>\n" + "      </ws:sayHello>\n" + "   </soapenv:Body>\n" + "</soapenv:Envelope>";sendHttpSoapAudit(soapXml, "");}public static void sendHttpSoapAudit(String soapXml,String soapAction) {System.out.println(System.currentTimeMillis());String oaRestfulServiceUrl = null;// am.getOADBTransaction().getProfile("");oaRestfulServiceUrl = "http://192.168.65.84:8989/WS_Server/Webservice?wsdl";// RequestConfig requestConfig =// RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).setSocketTimeout(5000).build();RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).build();CloseableHttpClient httpclient = null;CloseableHttpResponse h_response = null;try {// httpclient =// HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();httpclient = HttpClientBuilder.create().build();HttpPost postMethod = new HttpPost(oaRestfulServiceUrl);// postMethod.setConfig(requestConfig);postMethod.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36");postMethod.setHeader("Referer", oaRestfulServiceUrl);List<NameValuePair> params = new ArrayList<NameValuePair>();// 添加参数params.add(new BasicNameValuePair("type", type));params.add(new BasicNameValuePair("param", param));postMethod.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));postMethod.setHeader("Content-Type", "text/xml;charset=UTF-8");  postMethod.setHeader("SOAPAction", soapAction);  StringEntity data = new StringEntity(soapXml,  Charset.forName("UTF-8"));  postMethod.setEntity(data);  h_response = httpclient.execute(postMethod);HttpEntity repEntity = h_response.getEntity();int statusCode = h_response.getStatusLine().getStatusCode();if (statusCode != HttpStatus.SC_OK) {postMethod.abort();System.out.println("调用异常  " + statusCode);}String content = EntityUtils.toString(repEntity, "UTF-8");System.out.println("content "+content);} catch (ConnectTimeoutException e) {System.out.println(" ConnectTimeoutException " + System.currentTimeMillis());e.printStackTrace();} catch (SocketTimeoutException e) {System.out.println(" SocketTimeoutException " + System.currentTimeMillis());e.printStackTrace();} catch (Exception e) {System.out.println("Exception " + System.currentTimeMillis());e.printStackTrace();} finally {if (h_response != null) {try {h_response.close();} catch (IOException e) {e.printStackTrace();}}if (httpclient != null) {try {httpclient.close();} catch (IOException e) {e.printStackTrace();}}}}
}

httpclient妙用一 httpclient作为客户端调用soap webservice(转)相关推荐

  1. java webservice ssl_[转贴]Java客户端调用Https Webservice

    标题: Java客户端调用Https Webservice出处地址:http://hi.baidu.com/sunshibing/blog/item/08f873f0d41e67c37931aa84. ...

  2. cxf调用接口的几种方式_Java调用CXF WebService接口的两种方式实例

    1.静态调用 // 创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 判断是否抛出 ...

  3. 封装的人人网客户端调用接口

    2019独角兽企业重金招聘Python工程师标准>>> 最近项目需要调用人人网的开放平台接口,研究了一下人人网的API,封装了一些常用接口的调用方法,项目测试通过.主要用到了apac ...

  4. sorl java 建索引_solr 的客户端调用solrj 建索引+分页查询

    在 solr 3.5 配置及应用(一) 讲过一了 solr 3.5的详细配置,本节我们讲利用solr 的客户端调用solr的应用了! 一.利用SolrJ操作solr API 使用SolrJ操作Solr ...

  5. 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

    在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...

  6. android 调用 asp.net web api,从 .NET 客户端调用 Web API (C#)

    从 .NET 客户端调用 Web API (C#) 11/24/2017 本文内容 此内容适用于以前版本的 .NET. 新开发应该使用 ASP.NET Core. 有关使用 Core Web API ...

  7. WebService客户端调用常见5种方式

    之前系统中使用到了webservice进行第三方通信,这里总结一下常见的5种客户端调用方式. 在此之前我们先简单搭建一个webservice服务端项目,发布一个webservice服务.我这里使用sp ...

  8. resteasy 客户端java_RestEasy Web服务客户端调用

    RestEasy Web服务客户端调用 l 背景 在前几篇文章中,我介绍了用RestEasy 框架搭建的Rest风格的java web服务.这几天事情比较多,一直没有写客户端的调用方法.现在就谈一下客 ...

  9. WCF 入门之旅(4): 怎样用客户端调用WCF服务

    WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...

最新文章

  1. vCloud Automation Center (vCAC) 6.0 (一)
  2. 工具的学习使用(二):快捷键、工具、批处理
  3. 文巾解题3. 无重复字符的最长子串
  4. JAVA Swing——设置JButton按钮样式
  5. mysql中索引约束有哪些_Mysql中索引和约束的示例语句
  6. linux-优化内核参数 /etc/sysctl.conf
  7. 2019-0405视觉SLAM的学习第四讲
  8. 类似微信朋友圈评论回复功能表设计、代码实现
  9. MinGW编译windows可以调试的ffmpeg4.4
  10. springboot集成百度云OCR,实现通用文字识别,身份证文字识别,车牌号识别等等
  11. wifi共享大师去广告的方法
  12. 如何学习linux系统
  13. docker 网络方案--分析
  14. 飘飘微课计算机百度云,数学微课_百度云资源_盘多多如风搜_盘搜搜_哎哟喂啊...
  15. 在spring.io网下下载的快速入门项目,导进去pom.xml文件爆红,报:Non-resolvable parent POM for com.tc:demo:0.0.1-SNAPSHOT: F
  16. 编写一个python程序判断用户输入的8位银行卡_用Python编写的程序,提示用户输入一个由7位数字组成的帐号?...
  17. 如何在虚拟主机安装ssl证书,详细教程来了
  18. 我的JavaScript学习笔记续
  19. Lightsns主题html,功能强大的轻社区LightSNS主题1.6.39无限制版【仅作推荐】
  20. 做好了监控报警,创业公司如何搭建强壮的SaaS服务

热门文章

  1. servlet中弹出对话框
  2. linux 抓包文件 导出,tcpdump抓包和scp导出以及Wireshark查看
  3. mysql数据库比较语句,六条比较有用的MySQL数据库操作的SQL语句小结
  4. checksum命令 linux_关于Linux操作系统的一些命令是什么?
  5. intvar mysql_mysql binlog格式解析(一)
  6. oracle时间mapper怎么比较,MyBatis+Oracle时间精度丢失的问题
  7. c++ list 修改_C/C++编程笔记:数据结构系列——顺序表的实现,内含源码
  8. python文字识别库_python做文字识别一行代码都不用!
  9. arduino无源蜂鸣器歌曲编码_Arduino与无源蜂鸣器
  10. 十分钟入门RocketMQ