cxf Webservice 使用httpClient 调用-程序员宅基地

技术标签: java  

package com.wistron.wh.swpc.portal.uitl;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;

import com.wistron.swpc.framework.exception.SystemException;

/**
* 調用webservice的工具,封裝了post,get,put,delete方法調用webservice
*
*/
public class WebServiceUtil {

// 日志记录器
private static Logger logger = Logger.getLogger(WebServiceUtil.class);

/*
* public static String postByMap(String url, Map<String, Object> pv) throws
* SystemException{ logger.debug(String.format("Request url:%s", url));
* String responseMsg = ""; PostMethod postMethod = null; try { HttpClient
* httpClient = new HttpClient();
* httpClient.getParams().setContentCharset("utf-8"); postMethod = new
* PostMethod(url);
*
* Set<String> set = pv.keySet(); Iterator<String> it = set.iterator();
* while (it.hasNext()) { String key = it.next(); Object value =
* pv.get(key); if(null != value) postMethod.addParameter(key,
* value.toString()); else postMethod.addParameter(key, ""); }
*
* httpClient.executeMethod(postMethod);// 200 responseMsg =
* postMethod.getResponseBodyAsString().trim(); } catch(Exception e){ throw
* new SystemException("webservice请求异常",e ); } finally {
* postMethod.releaseConnection(); }
*
* return responseMsg; }
*/

/**
* post调用
*
* @param url
* @param xml
* @return
* @throws SystemException
*/
public static String postMethodInvoke(String url, String xml)
throws SystemException {
logger.debug(String.format("Request url:%s", url));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
String responseMsg = null;

try {
HttpEntity re = new StringEntity(xml, "utf-8");
httppost.setHeader("Content-Type", "application/xml;charset=utf-8");
httppost.setEntity(re);
HttpResponse response = httpClient.execute(httppost);
HttpEntity entity = response.getEntity();
responseMsg = EntityUtils.toString(entity, "utf-8");
} catch (Exception e) {
throw new SystemException("webservice请求异常", e);
} finally {
httpClient.getConnectionManager().shutdown();
}
return responseMsg;

}

/**
* get调用
*
* @param url
* @return
* @throws Exception
*/
public static String getMethodInvoke(String url) throws Exception {
logger.debug(String.format("Request url:%s", url));
String responseMsg = "";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
try {
httpget.setHeader("Content-Type", "application/xml; charset=utf-8");
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
responseMsg = EntityUtils.toString(entity, "utf-8");
} catch (Exception e) {
throw new SystemException("webservice请求异常", e);
} finally {
httpClient.getConnectionManager().shutdown();
}
return responseMsg;
}

/**
* put
*
* @param url
* @param xml
* @return
* @throws SystemException
*/
public static String putMethodInvoke(String url, String xml)
throws SystemException {
logger.debug(String.format("Request url:%s", url));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPut httpput = new HttpPut(url);
String state = null;
try {
HttpEntity re = new StringEntity(xml);
httpput.setHeader("Content-Type", "charset=utf-8");
httpput.setEntity(re);
HttpResponse response = httpClient.execute(httpput);
state = EntityUtils.toString(response.getEntity());
} catch (Exception e) {
throw new SystemException("webservice请求异常", e);
} finally {
httpClient.getConnectionManager().shutdown();
}
return state;

}

/**
* delete
*
* @param url
* @return
* @throws Exception
*/
public static String deleteMethodInvoke(String url) throws Exception {
logger.debug(String.format("Request url:%s", url));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpDelete httpdelete = new HttpDelete(url);
String state = null;
try {
httpdelete.setHeader("Content-Type", "charset=utf-8");
HttpResponse response = httpClient.execute(httpdelete);
state = EntityUtils.toString(response.getEntity());
} catch (Exception e) {
throw new SystemException("webservice请求异常", e);
} finally {
httpClient.getConnectionManager().shutdown();
}
return state;

}

/**
* post 文件下载
*
* @param url
* @param file
* @return
* @throws SystemException
*/
public static String postUploadMethodInvoke(String url, File file)
throws SystemException {
logger.debug(String.format("Request url:%s", url));
DefaultHttpClient httpClient = new DefaultHttpClient();

String state = null;
FileInputStream fis = null;
BufferedInputStream in = null;
try {
HttpPost httppost = new HttpPost(url);
fis = new FileInputStream(file);
in = new BufferedInputStream(fis);

HttpEntity re = new InputStreamEntity(in, file.length(),
ContentType.MULTIPART_FORM_DATA);
httppost.setHeader("Content-Type", "charset=utf-8");
httppost.setHeader("enctype", "multipart/form-data'");
httppost.setEntity(re);
HttpResponse response = httpClient.execute(httppost);
HttpEntity e = response.getEntity();
state = EntityUtils.toString(e == null ? new StringEntity("") : e);
} catch (Exception e) {
throw new SystemException("webservice请求异常", e);
} finally {
try {
if (in != null) {
in.close();
}
if (fis != null) {
fis.close();
}
httpClient.getConnectionManager().shutdown();
} catch (IOException e) {
throw new SystemException("webservice请求异常", e);
}
}
return state;
}

}

转载于:https://www.cnblogs.com/LLLONG/p/3345241.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30402085/article/details/95785749

智能推荐

vue中使用swiper实现左右滑动切换图片_vue图片滑动切换-程序员宅基地

文章浏览阅读4.7k次。使用npm 安装vue-awesome-swipernpm install vue-awesome-swiper --save在main.js中引用import VueAwesomeSwiper from 'vue-awesome-swiper'Vue.user(VueAwesomeSwiper)import 'swiper/dist/css/swiper.css'在组件..._vue图片滑动切换

poj1036 Gangsters-程序员宅基地

文章浏览阅读2.6k次。题意:N个歹徒去一个餐馆,旅馆门有k个打开程度(每个打开程度为门的一个状态),每个歹徒拥有自己的肥胖度(两个歹徒的肥胖度可能相同)和繁荣度(prosperity),歹徒在i 时刻到餐厅来(两个歹徒可能同时来餐馆),若此时刻门的打开程度与歹徒的肥胖度相同,则歹徒就进入餐馆,同时餐馆_poj1036

VMware-ubuntu 之如何时间同步_vmware时间设置-程序员宅基地

文章浏览阅读1.2k次。可以选“自动设置时区”或者是点“时区”手动选择所在时区。环境:VMware+Ubuntu18.04。(1)VMware菜单--虚拟机--设置。(2)Ubuntu程序--设置。_vmware时间设置

关于报表在移动端展现你需要知道哪些?_移动端代理商数据报表-程序员宅基地

文章浏览阅读323次。在各企业中或者电商平台的商家,业务方,每天都有大量的人需要在线查看大量的指标,用于监控、分析关键业务数据的发展趋势。同时,又有着能够随时随地,方便快捷的查看分析数据的诉求。我们习惯于,使用润乾报表在 PC 端或大屏中展现,但是你知道吗?润乾报表 V2018 是以 HTML5 方式输出,不仅支持在 PC 端展现,也支持在手机端展现,并且在手机端展现时可以在手机端自适应。手机报表已有功能目..._移动端代理商数据报表

python压缩算法_使用Python(lzma)使用LZMA算法进行压缩-程序员宅基地

文章浏览阅读2k次。Lempel-谢夫马尔可夫链算法使用设有比其它压缩算法更高的压缩比的字典压缩方案(LZMA)执行无损数据压缩。Python的lzma模块由用于通过LZMA算法压缩和解压缩数据的类和便利函数组成。尽管此模块中的功能类似于bz2模块,但是与BZ2File类相比,LZMAFile类不是线程安全的。同样,open()lzma模块中的函数是打开lzma压缩文件对象的最简单方法。打开()此函数将打开LZMA压..._lzma压缩算法

Z-XML团队 软件工程课之我感我思我收获-程序员宅基地

文章浏览阅读97次。《软件工程》这门课像我们的诤友,不断督促我们前进,又不断指引我们收获。时间飞逝,我们Z-XML团队一个个完成了课程中的所有任务,一步步走到了期末年末。走的远了,也该回头看看。全员7人回顾于此:李孟 一个学期的软件工程即将落下帷幕,在这样一个历程中,我收获很多,也感受到很多。 这是一门与实践结合极其紧密的课,而对于这样的课,总是让我感到兴奋。因为我们确实是在做中学,在学中做。...

随便推点

开启固定拨号FDN功能,发送信息时如何做FDN检测_只能向固定拨号号码发信息什么意思-程序员宅基地

文章浏览阅读2.7k次。开启固定拨号FDN功能,发送信息时如何做FDN1. FDN概念固定拨号,FDN(Fixed dialer number),就是只允许呼出FDN菜单中自己输入的电话号码,设定指定拨号后,你的手机只能拨出有限的几个号码啦,也只能接听FDN中的号码。但是,紧急呼叫是不受该限制的。设定指定拨号需要你的pin2码。一般移动公司是不会提供这个码的,需要个人和移动公司交流才能得到。2. FD_只能向固定拨号号码发信息什么意思

谈谈基于OAuth 2.0的第三方认证 [上篇]_oauth2.0 外部接口认证-程序员宅基地

文章浏览阅读223次。谈谈基于OAuth 2.0的第三方认证 [上篇] https://www.cnblogs.com/artech/p/oauth-01.html对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成。具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码)与用户提供的凭证进行比较进而确认其真实身份。但是这种由Web应用全权负责的认证方式会带来如下两个问题:对于用户来说,他..._oauth2.0 外部接口认证

PyQt5 字体设置以及快捷键设置_setfamily-程序员宅基地

文章浏览阅读1.3w次,点赞15次,收藏85次。PyQt5 字体设置以及快捷键设置一、字体设置常用函数setFamily() 设置字体类型 如宋体 楷体微软雅黑 Consolas 等setStyleName() “Normal” 正常 “Bold” 加粗 “Italic” 斜体 “Bold Italic” 加粗斜体setPointSize() 设置点大小setPixelSize() 设置像素大小setWeight() 设置粗细setBold(bool) 设置加粗setStyle(Style style) 设置字体风格 .._setfamily

基于ssm工单管理系统的设计与实现(源码+lw+部署文档+讲解等)-程序员宅基地

文章浏览阅读303次,点赞5次,收藏4次。功能对照表的目的是帮助开发团队了解软件的功能状况,及时修复功能缺陷和错误,并提高软件的质量和稳定性。功能编号功能名称功能描述功能状态备注1用户登录用户可以通过提供用户名和密码登录系统正常用户名和密码的验证机制安全性2用户注册用户可以通过提供用户名、密码和电子邮件地址注册新的账户正常无3密码修改用户可以通过提供原密码和新密码修改已有账户的密码正常用户密码的修改操作是否需要提供安全认证4用户信息查看用户可以查看自己的个人信息,如用户名、电子邮件地址、角色等正常无。

为什么静态static成员函数不能成为virtual虚函数_静态函数(static)不能是虚函数-程序员宅基地

文章浏览阅读2.6k次,点赞12次,收藏38次。首先什么是static静态成员函数?静态成员函数不属于类中的任何一个对象和实例,属于类共有的一个函数。也就是说,它不能用this指针来访问,因为this指针指向的是每一个对象和实例。对于virtual虚函数,它的调用恰恰使用this指针。在有虚函数的类实例中,this指针调用vptr指针,指向的是vtable(虚函数列表),通过虚函数列表找到需要调用的虚函数的地址。总体来说虚函数的调用关系是:..._静态函数(static)不能是虚函数

【计算机毕业设计】030小学生课外知识学习网站-程序员宅基地

文章浏览阅读107次。互联网发展到如今也近20年之久,小学生课外知识学习网站一直作为互联网发展中的一个重要角色在不断更新进化。小学生课外知识学习网站从最初的文本显示到现在集文字、视频、音频与一体,成为一种网络多媒体浏览网站。作为一种媒体传输媒介,小学生课外知识学习网站如今也分各个类别,各种形式。本文着重对小学生课外知识学习网站进行分析和研究,浅析小学生课外知识学习网站的现状和存在的一些问题并对此进行研究,通过对问题和现状的分析研究和对用户需求的一个简单整理建模,设计并且实现一个小学生课外知识学习网站。小学生课外知识学习网站采