httpclient妙用一 httpclient作为客户端调用soap webservice(转)
前面有一篇使用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(转)相关推荐
- java webservice ssl_[转贴]Java客户端调用Https Webservice
标题: Java客户端调用Https Webservice出处地址:http://hi.baidu.com/sunshibing/blog/item/08f873f0d41e67c37931aa84. ...
- cxf调用接口的几种方式_Java调用CXF WebService接口的两种方式实例
1.静态调用 // 创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 判断是否抛出 ...
- 封装的人人网客户端调用接口
2019独角兽企业重金招聘Python工程师标准>>> 最近项目需要调用人人网的开放平台接口,研究了一下人人网的API,封装了一些常用接口的调用方法,项目测试通过.主要用到了apac ...
- sorl java 建索引_solr 的客户端调用solrj 建索引+分页查询
在 solr 3.5 配置及应用(一) 讲过一了 solr 3.5的详细配置,本节我们讲利用solr 的客户端调用solr的应用了! 一.利用SolrJ操作solr API 使用SolrJ操作Solr ...
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...
- android 调用 asp.net web api,从 .NET 客户端调用 Web API (C#)
从 .NET 客户端调用 Web API (C#) 11/24/2017 本文内容 此内容适用于以前版本的 .NET. 新开发应该使用 ASP.NET Core. 有关使用 Core Web API ...
- WebService客户端调用常见5种方式
之前系统中使用到了webservice进行第三方通信,这里总结一下常见的5种客户端调用方式. 在此之前我们先简单搭建一个webservice服务端项目,发布一个webservice服务.我这里使用sp ...
- resteasy 客户端java_RestEasy Web服务客户端调用
RestEasy Web服务客户端调用 l 背景 在前几篇文章中,我介绍了用RestEasy 框架搭建的Rest风格的java web服务.这几天事情比较多,一直没有写客户端的调用方法.现在就谈一下客 ...
- WCF 入门之旅(4): 怎样用客户端调用WCF服务
WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...
最新文章
- vCloud Automation Center (vCAC) 6.0 (一)
- 工具的学习使用(二):快捷键、工具、批处理
- 文巾解题3. 无重复字符的最长子串
- JAVA Swing——设置JButton按钮样式
- mysql中索引约束有哪些_Mysql中索引和约束的示例语句
- linux-优化内核参数 /etc/sysctl.conf
- 2019-0405视觉SLAM的学习第四讲
- 类似微信朋友圈评论回复功能表设计、代码实现
- MinGW编译windows可以调试的ffmpeg4.4
- springboot集成百度云OCR,实现通用文字识别,身份证文字识别,车牌号识别等等
- wifi共享大师去广告的方法
- 如何学习linux系统
- docker 网络方案--分析
- 飘飘微课计算机百度云,数学微课_百度云资源_盘多多如风搜_盘搜搜_哎哟喂啊...
- 在spring.io网下下载的快速入门项目,导进去pom.xml文件爆红,报:Non-resolvable parent POM for com.tc:demo:0.0.1-SNAPSHOT: F
- 编写一个python程序判断用户输入的8位银行卡_用Python编写的程序,提示用户输入一个由7位数字组成的帐号?...
- 如何在虚拟主机安装ssl证书,详细教程来了
- 我的JavaScript学习笔记续
- Lightsns主题html,功能强大的轻社区LightSNS主题1.6.39无限制版【仅作推荐】
- 做好了监控报警,创业公司如何搭建强壮的SaaS服务
热门文章
- servlet中弹出对话框
- linux 抓包文件 导出,tcpdump抓包和scp导出以及Wireshark查看
- mysql数据库比较语句,六条比较有用的MySQL数据库操作的SQL语句小结
- checksum命令 linux_关于Linux操作系统的一些命令是什么?
- intvar mysql_mysql binlog格式解析(一)
- oracle时间mapper怎么比较,MyBatis+Oracle时间精度丢失的问题
- c++ list 修改_C/C++编程笔记:数据结构系列——顺序表的实现,内含源码
- python文字识别库_python做文字识别一行代码都不用!
- arduino无源蜂鸣器歌曲编码_Arduino与无源蜂鸣器
- 十分钟入门RocketMQ