- 浏览: 7331750 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
package cn.com.huawei.opensource.common.https.tools;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
* 处理远程的请求的方法的应用
* @author bailonggang
* 2009-1-2
* 下午04:38:58
*/
public class HTTPClient {
/**
*
* @param httpurl
* @return
*/
public String execute(String httpurl)
{
//构建HttpClient的实例的应用
HttpClient httpclient=new HttpClient();
//创建GET方法的实例
GetMethod getmethod=new GetMethod(httpurl);
//创建的POST方法的实例 PostMethod postmethod=new PostMethod(httpurl);
//使用系统提供的默认的恢复策略
getmethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
try {
//执行GET方法的请求的实例
int statusCode=httpclient.executeMethod(getmethod);
//查看响应的编码的方式
String responseEncoding=getmethod.getRequestCharSet();
System.out.println("the response encoding is :"+responseEncoding);
//检测发送是否成功的
if(statusCode!=HttpStatus.SC_OK)
{
System.out.println("Method failure:"+getmethod.getStatusLine());
}
//得到响应的消息体
byte[] responseBody=getmethod.getResponseBody();
return new String(responseBody);
} catch (HttpException e) {
System.out.println("please check you provided http address!"+e);
}catch(IOException e)
{
//发生网络异常信息
e.printStackTrace();
}finally{
//释放连接
getmethod.releaseConnection();
}
return null;
}
/**
* 使用HttpClient调用远程servlet
* @param httpurl
* @param xmlInfo
* @param map
* @return
*/
@SuppressWarnings("unchecked")
public InputStream executeHttp(String httpurl, String xmlInfo,Map<String ,String> map) {
HttpClient httpclient = new HttpClient();
//使用Post发送消息的方法的应用
PostMethod postmethod = new PostMethod(httpurl);
ByteArrayRequestEntity requestEntity=new ByteArrayRequestEntity(xmlInfo.getBytes(),"text/html; charset=UTF-8");
InputStream inputstream=null;
//设置请求的实体
postmethod.setRequestEntity(requestEntity);
//设置请求的格式
try {
//设置消息头信息
for (Iterator it =map.entrySet().iterator(); it.hasNext();)
{
Entry<String,String> header = (Entry<String,String>) it.next();
String key=header.getKey();
String value=header.getValue();
postmethod.setRequestHeader(key, value);
}
//发送消息的方法的
httpclient.executeMethod(postmethod);
//发送成功接受请求的信息
if(postmethod.getStatusCode()==HttpStatus.SC_OK)
{
inputstream=postmethod.getResponseBodyAsStream();
}else{
System.out.println("unexpected failure:"+postmethod.getStatusLine());
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
postmethod.releaseConnection();
}
return inputstream;
}
/**
* 使用HttpClient调用远程servlet
* @param httpurl
* @param xmlInfo
* @param map
* @return
*/
@SuppressWarnings("unchecked")
public InputStream executeHttp(String httpurl, Map<String,String> paramMaps,Map<String ,String> map) {
HttpClient httpclient = new HttpClient();
//使用Post发送消息的方法的应用
PostMethod postmethod = new PostMethod(httpurl);
InputStream inputstream=null;
//设置请求的填入各个表单域的值
List<NameValuePair> paramList=new ArrayList<NameValuePair>();
NameValuePair[] params=new NameValuePair[paramMaps.size()];
for (Iterator it =map.entrySet().iterator(); it.hasNext();)
{
Entry<String,String> header = (Entry<String,String>) it.next();
String key=header.getKey();
String value=header.getValue();
NameValuePair param=new NameValuePair();
param.setName(key);
param.setValue(value);
paramList.add(param);
}
paramList.toArray(params);
postmethod.setRequestBody(params);
//设置请求的格式
try {
//设置消息头信息
for (Iterator it =map.entrySet().iterator(); it.hasNext();)
{
Entry<String,String> header = (Entry<String,String>) it.next();
String key=header.getKey();
String value=header.getValue();
postmethod.setRequestHeader(key, value);
}
//发送消息的方法的
int statusCode=httpclient.executeMethod(postmethod);
//自动转向的方式的应用
//HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发301或者302
if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY)
{
Header locationHeader=postmethod.getRequestHeader("location");
String location=null;
if(locationHeader!=null)
{
location=locationHeader.getValue();
System.out.println("the page was redirected to:"+location);
}else{
System.out.println("Location field value is null!");
}
}
//发送成功接受请求的信息
if(postmethod.getStatusCode()==HttpStatus.SC_OK)
{
inputstream=postmethod.getResponseBodyAsStream();
}else{
System.out.println("unexpected failure:"+postmethod.getStatusLine());
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
postmethod.releaseConnection();
}
return inputstream;
}
}
如果疑问请与我联系: longgangbai@sina.com
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
* 处理远程的请求的方法的应用
* @author bailonggang
* 2009-1-2
* 下午04:38:58
*/
public class HTTPClient {
/**
*
* @param httpurl
* @return
*/
public String execute(String httpurl)
{
//构建HttpClient的实例的应用
HttpClient httpclient=new HttpClient();
//创建GET方法的实例
GetMethod getmethod=new GetMethod(httpurl);
//创建的POST方法的实例 PostMethod postmethod=new PostMethod(httpurl);
//使用系统提供的默认的恢复策略
getmethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
try {
//执行GET方法的请求的实例
int statusCode=httpclient.executeMethod(getmethod);
//查看响应的编码的方式
String responseEncoding=getmethod.getRequestCharSet();
System.out.println("the response encoding is :"+responseEncoding);
//检测发送是否成功的
if(statusCode!=HttpStatus.SC_OK)
{
System.out.println("Method failure:"+getmethod.getStatusLine());
}
//得到响应的消息体
byte[] responseBody=getmethod.getResponseBody();
return new String(responseBody);
} catch (HttpException e) {
System.out.println("please check you provided http address!"+e);
}catch(IOException e)
{
//发生网络异常信息
e.printStackTrace();
}finally{
//释放连接
getmethod.releaseConnection();
}
return null;
}
/**
* 使用HttpClient调用远程servlet
* @param httpurl
* @param xmlInfo
* @param map
* @return
*/
@SuppressWarnings("unchecked")
public InputStream executeHttp(String httpurl, String xmlInfo,Map<String ,String> map) {
HttpClient httpclient = new HttpClient();
//使用Post发送消息的方法的应用
PostMethod postmethod = new PostMethod(httpurl);
ByteArrayRequestEntity requestEntity=new ByteArrayRequestEntity(xmlInfo.getBytes(),"text/html; charset=UTF-8");
InputStream inputstream=null;
//设置请求的实体
postmethod.setRequestEntity(requestEntity);
//设置请求的格式
try {
//设置消息头信息
for (Iterator it =map.entrySet().iterator(); it.hasNext();)
{
Entry<String,String> header = (Entry<String,String>) it.next();
String key=header.getKey();
String value=header.getValue();
postmethod.setRequestHeader(key, value);
}
//发送消息的方法的
httpclient.executeMethod(postmethod);
//发送成功接受请求的信息
if(postmethod.getStatusCode()==HttpStatus.SC_OK)
{
inputstream=postmethod.getResponseBodyAsStream();
}else{
System.out.println("unexpected failure:"+postmethod.getStatusLine());
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
postmethod.releaseConnection();
}
return inputstream;
}
/**
* 使用HttpClient调用远程servlet
* @param httpurl
* @param xmlInfo
* @param map
* @return
*/
@SuppressWarnings("unchecked")
public InputStream executeHttp(String httpurl, Map<String,String> paramMaps,Map<String ,String> map) {
HttpClient httpclient = new HttpClient();
//使用Post发送消息的方法的应用
PostMethod postmethod = new PostMethod(httpurl);
InputStream inputstream=null;
//设置请求的填入各个表单域的值
List<NameValuePair> paramList=new ArrayList<NameValuePair>();
NameValuePair[] params=new NameValuePair[paramMaps.size()];
for (Iterator it =map.entrySet().iterator(); it.hasNext();)
{
Entry<String,String> header = (Entry<String,String>) it.next();
String key=header.getKey();
String value=header.getValue();
NameValuePair param=new NameValuePair();
param.setName(key);
param.setValue(value);
paramList.add(param);
}
paramList.toArray(params);
postmethod.setRequestBody(params);
//设置请求的格式
try {
//设置消息头信息
for (Iterator it =map.entrySet().iterator(); it.hasNext();)
{
Entry<String,String> header = (Entry<String,String>) it.next();
String key=header.getKey();
String value=header.getValue();
postmethod.setRequestHeader(key, value);
}
//发送消息的方法的
int statusCode=httpclient.executeMethod(postmethod);
//自动转向的方式的应用
//HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发301或者302
if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY)
{
Header locationHeader=postmethod.getRequestHeader("location");
String location=null;
if(locationHeader!=null)
{
location=locationHeader.getValue();
System.out.println("the page was redirected to:"+location);
}else{
System.out.println("Location field value is null!");
}
}
//发送成功接受请求的信息
if(postmethod.getStatusCode()==HttpStatus.SC_OK)
{
inputstream=postmethod.getResponseBodyAsStream();
}else{
System.out.println("unexpected failure:"+postmethod.getStatusLine());
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
postmethod.releaseConnection();
}
return inputstream;
}
}
如果疑问请与我联系: longgangbai@sina.com
发表评论
-
[转]Jython初探
2014-01-07 11:19 2407转载自: ... -
ireport导出各种格式(pdf,excel,word,html,print)
2013-05-02 16:59 10046import java.io.IOException; ... -
【转】使用Atomikos Transactions Essentials实现多数据源JTA分布式事务
2013-04-03 12:11 6793Atomikos数据源配置方法有三种 Atomikos数 ... -
【转】Apache Thrift入门1-架构&介绍
2013-04-02 13:26 2033Thrift 是什么? Thrift ... -
【转】Thrift入门及Java实例演示
2013-04-02 12:47 2577目录: 概述 下载配置 基本概念 数据类型 ... -
【转】Thrift入门试用
2013-04-02 12:39 2176在新的项目中公司在平台内部系统间使用Thrift通讯,都没 ... -
【转】thrift的安装
2013-04-02 12:38 2090一、ubuntu下thrift的安装 1.下载源代码 ... -
GIS的学习(二十五)geoserver wms中的各种操作API详细讲解和使用
2012-09-10 17:42 9699官方geoserver中WMS服务中几种操作的API的详细说明 ... -
POI3.8组件研究(九)----让POI架起Java与Office之间的桥梁
2012-06-17 14:37 4318本文将阐述如何用POI来读取/写入完整的Excel文 ... -
POI3.8组件研究(八)--基于SXSSF (Streaming Usermodel API)的写文件
2012-06-17 14:17 14431在POI3.8中SXSSF仅仅支持excel2 ... -
POI3.8组件研究(七)--基于XSSF and SAX (Event API)事件的解析
2012-06-17 14:00 5361针对Event API事件解析仅仅支持excel97~ ... -
POI3.8组件研究(六)---struts2.0 视图层文件页面点击导出
2012-06-17 13:23 2415在struts2.0中点击导出按钮将信息导出为exce ... -
POI3.8组件研究(五)---excel文件内容抽取为文本
2012-06-15 09:15 4363在一个搜索引擎的使用中需要将各种文件转化为文本 ... -
POI3.8组件研究(四)--Event API (HSSF Only)事件的解析
2012-06-14 17:37 9058通过eventusermodel读取文件 ... -
POI3.8组件研究(二)---基于User API (HSSF and XSSF)解析Excel2003和2007文件
2012-06-14 09:46 3214在解析生成excel2003和 ... -
POI3.8组件研究(一)---基于User API (HSSF and XSSF)解析Excel2003和2007文件
2012-06-14 09:29 5351在以前的Excel解析时候,我们通常需要编写Ex ... -
EasyPOI的使用
2012-02-12 17:06 5307EasyPOI 的目的是封装了poi的写excel的API。 ... -
Commons-net FTPClient上传下载的封装
2011-08-25 08:30 11509在项目中使用到FTP功能,于是采用类似Spri ... -
Java将第三方jar文件打包到一个jar中的插件(fatjar)
2011-08-19 22:17 4333<!-- google_ad_section_star ... -
Apache的Commons-configuration自动加载特性
2011-07-24 19:04 4072在一些项目可能配置文件经常变化,配置文件的类型可能 ...
相关推荐
它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会...
`TestFTP_ddxc`这个文件可能是一个测试程序,包含了如何使用Apache FTP库进行文件上传和下载的示例代码。在这个程序中,开发者可能演示了如何打开和关闭连接,创建或改变远程目录,上传和下载文件,以及如何处理断点...
使用apatche的jar包 已有 commons beanutils 1 8 3 jar 复制 commons collections 3 2 1 jar 对java util的增强 commons lang 2 5 jar 对java lang的增强 commons logging 1 1 1 jar 日志 ">JSON 类库...
Apache最新的Dcommons-dbcp2-2.7.0和commons-pool2-2.7.0数据源及数据库连接池Jar包
- **元数据管理**:Kylin使用HBase和HDFS来存储元数据,确保高可用性和持久性。 3. **与HBase的关系**: - **数据存储**:在Kylin中,预计算的立方体数据默认存储在HBase中,利用其列式存储和分布式特性,实现...
* 使用apatche的jar包 * commons-beanutils-1.8.3.jar(复制) * commons-collections-3.2.1.jar(对java.util的增强) * commons-lang-2.5.jar(对java.lang的增强) * commons-logging-1.1.1.jar(日志 )
* 使用apatche的jar包 * commons-beanutils-1.8.3.jar(复制) * commons-collections-3.2.1.jar(对java.util的增强) * commons-lang-2.5.jar(对java.lang的增强) * commons-logging-1.1.1.jar(日志 )
Alog日志系统原名Logs,现...a.Apatche服务器请在设置后,复制rewrite目录下.htaccess文件到网站根目录。 b.IIS服务器请在设置后,复制rewrite目录下httpd.ini文件到网站根目录。 c.其他服务器,如Nginx等参照设置。
URL路由开关说明当URL路由设置为开启时页面路径将使用伪静态,请根据服务器情况设置响应的伪静态规则。a.Apatche服务器请在设置后,复制rewrite目录下.htaccess文件到网站根目录。b.IIS服务器请在设置后,复制...
CloudTest is an open source project initiated by the individual, which is distributed on Apatche Licenses 2.0 releases. Every organization or individual is fully granted for viewing its source code or...
apatche开源项目echo的第三版示例,全用的javascript,强烈建议那些想写桌面型的胖客户端看看。其中的源码都可以下载的,或者用那些chm查看器解压缩就可以了
URL路由开关说明 --------------------------------------------------------- 当URL路由设置为开启时页面路径将使用伪静态,请根据服务器情 况设置响应的伪静态规则。 a.Apatche服务器请在设置后,复制rewrite目录...
vRules4j是由个人发起的开源项目,它基于Apatche Licenses 2.0 免费发布。任何组织或者个人都可以查看其源码并根据自己的需要修改源码,同时在商业应用中具有最大的授权许可。具体Licenses 条款请参阅...