- 浏览: 62887 次
- 性别:
- 来自: 北京
最新评论
-
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
Spring--Quartz 任务调度的配置详解 -
wujianjun12315:
...
java定时器实例 -
Hillen.chan:
cainiaobos 写道import org.apache. ...
Java HttpClient实例 -
cainiaobos:
import org.apache.commons.httpc ...
Java HttpClient实例 -
wanghonghui023:
写的很好,学习了
java定时器实例
package com.dheaven.mip.item; import java.io.IOException; 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.HttpMethod; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class MyHttpClient { /** * Description: HttpClient GET方法 * 1. 创建 HttpClient 的实例 2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址 3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例 4. 读 response 5. 释放连接。无论执行方法是否成功,都必须释放连接 6. 对得到后的内容进行处理 * */ public void getClientMethod(){ HttpClient client = new HttpClient(); // 设置代理服务器地址和端口(第一个参数是代理服务器地址,第二个参数是端口号。) // client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port); //创建GET方法的实例,在GET方法的构造函数中传入待连接的地址即可。 //用GetMethod将会自动处理转发过程,如果想要把自动处理转发过程去掉的话,可以调用方法setFollowRedirects(false)。 // 使用 GET 方法 ,如果服务器需要通过 HTTPS 连接,那只需要将下面 URL 中的 http 换成 https HttpMethod getMethod = new GetMethod("http://www.ibm.com/"); //调用实例httpClient的executeMethod方法来执行getMethod。 //设置成了默认的恢复策略,在发生异常时候将自动重试3次,在这里你也可以设置成自定义的恢复策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); //执行getMethod int statusCode; try { statusCode = client.executeMethod(getMethod); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed: " + getMethod.getStatusLine()); } /** * 在返回的状态码正确后,即可取得内容。取得目标地址的内容有三种方法: * 第一种,getResponseBody,该方法返回的是目标的二进制的byte流; * 第二种,getResponseBodyAsString,这个方法返回的是String类型,值得注意的是该方法返回的String的编码是根据系统默认的编码方式,所以返回的String值可能编码类型有误,在本文的"字符编码"部分中将对此做详细介绍; * 第三种,getResponseBodyAsStream,这个方法对于目标地址中有大量数据需要传输是最佳的。在这里我们使用了最简单的getResponseBody方法。 */ //读取内容 byte[] responseBody = getMethod.getResponseBody(); //处理内容 System.out.println(new String(responseBody)); } catch (HttpException e) { System.out.println("Please check your provided http address!"); } catch (IOException e) { e.printStackTrace(); } finally { //释放连接 getMethod.releaseConnection(); } } /** * Description: HttpClient POST方法 * HttpClient中的PostMethod与GetMethod类似,除了设置PostMethod的实例与GetMethod有些不同之外,剩下的步骤都差不多 * */ public void postClientMethod(){ HttpClient client=new HttpClient(); /* * 在创建了PostMethod的实例之后,需要给method实例填充表单的值 * 在BBS的登录表单中需要有两个域,第一个是用户名(域名叫id),第二个是密码(域名叫passwd)。 * 表单中的域用类NameValuePair来表示,该类的构造函数第一个参数是域名,第二参数是该域的值; * 将表单所有的值设置到PostMethod中用方法setRequestBody。另外由于BBS登录成功后会转向另外一个页面,但是HttpClient对于要求接受后继服务的请求, * 比如POST和PUT,不支持自动转发,因此需要自己对页面转向做处理。 */ String url = "http://www.ibm.com/"; PostMethod postMethod = new PostMethod(url); // 填入各个表单域的值 NameValuePair[] data = { new NameValuePair("id", "youUserName"), new NameValuePair("passwd", "yourPwd") }; // 将表单的值放入postMethod中 postMethod.setRequestBody(data); // 执行postMethod int statusCode; try { statusCode = client.executeMethod(postMethod); // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发 // 301或者302 if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) { // 从头中取出转向的地址 Header locationHeader = postMethod.getResponseHeader("location"); String location = null; if (locationHeader != null) { location = locationHeader.getValue(); System.out.println("The page was redirected to:" + location); } else { System.err.println("Location field value is null."); } return; } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { //释放连接 postMethod.releaseConnection(); } } /* * 自动转向 根据RFC2616中对自动转向的定义, 主要有两种:301和302。301表示永久的移走(Moved Permanently),当返回的是301,则表示请求的资源已经被移到一个固定的新地方,任何向该地址发起请求都会被转到新的地址上。 302表示暂时的转向,比如在服务器端的servlet程序调用了sendRedirect方法,则在客户端就会得到一个302的代码,这时服务器返回的头信息中location的值就是sendRedirect转向的目标地址。 HttpClient支持自动转向处理,但是象POST和PUT方式这种要求接受后继服务的请求方式,暂时不支持自动转向,因此如果碰到POST方式提交后返回的是301或者302的话需要自己处理。 就像刚才在POSTMethod中举的例子:如果想进入登录BBS后的页面,必须重新发起登录的请求,请求的地址可以在头字段location中得到。 不过需要注意的是,有时候location返回的可能是相对路径,因此需要对location返回的值做一些处理才可以发起向新地址的请求。 另外除了在头中包含的信息可能使页面发生重定向外,在页面中也有可能会发生页面的重定向。引起页面自动转发的标签是:<meta http-equiv="refresh" content="5; url=http://www.ibm.com/us">。 如果你想在程序中也处理这种情况的话得自己分析页面来实现转向。需要注意的是,在上面那个标签中url的值也可以是一个相对地址,如果是这样的话,需要对它做一些处理后才可以转发。 */ }
评论
2 楼
Hillen.chan
2011-03-16
cainiaobos 写道
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.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
你好,能否发上面这些所在的包给我?谢谢了,154550581@qq.com
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
你好,能否发上面这些所在的包给我?谢谢了,154550581@qq.com
发送过去了。 你看下..
1 楼
cainiaobos
2011-03-16
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.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
你好,能否发上面这些所在的包给我?谢谢了,154550581@qq.com
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
你好,能否发上面这些所在的包给我?谢谢了,154550581@qq.com
发表评论
-
Spring--Quartz 任务调度的配置详解
2012-01-06 16:39 13388Quartz调度器为调度工作提供了更丰富的支持。和Java定时 ... -
Java日期操作集锦
2012-01-06 16:28 1218[size=small][/size]java处理日期时间 相 ... -
Eclipse 插件安装方法和插件加载失败解决办法
2011-06-28 14:55 2342一:是利用Eclipse Software ... -
dom4j方式写入与解析XML
2011-01-13 14:58 3991package com.dheaven.mip.item; ... -
使用DWR注解Annotation
2011-01-13 14:56 1605文章分类:Web前端 Struts 2,Spring,Hib ... -
Hibernate查询Query By Criterial
2011-01-05 16:35 1888提供的检索方式: (1)导航对象图检索方式 (2)OID检索 ... -
Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记
2011-01-04 11:20 11781. 添加Spring 2.0的Libraries ... -
Java 上传文件
2010-12-15 10:29 12641,JSP页面 Java代码 < ... -
java读取和写入excel
2010-12-15 10:26 1952需jxl.jar包 package com.dheaven ... -
service注入Action
2010-12-14 17:45 19121.老爸操持型 这种类型,即是在BaseAction中提供 ... -
hibernate分页
2010-12-10 14:33 7289这里想说的代码主要是泛型DAO层的应用与分页的写法. 分 ... -
JAVA排序汇总
2010-12-03 14:43 834package com.softeem.jbs.lesson4 ... -
解决UTF-8乱码问题
2010-11-29 09:06 1171为了顺利的开发一个多语言的国际化J2EE程序,需要修改数据库字 ... -
MyEclipse优化收集
2010-11-08 16:33 1127第一步: 取消自动validation validation有 ... -
log4j详细配置
2010-10-30 11:21 871Log4J的配置文件(Configurat ... -
applicationContext.xml 配置说明
2010-10-30 11:18 1041<?xml version="1.0" ... -
struts2.0之struts.xml详解
2010-10-26 11:09 987XML文件代码 <!DOCTYPE st ... -
如何创建一个进程,如何进程调用进程
2010-09-06 17:01 1542java一般用线程就够了, ... -
关于Runtime.exec()的用法
2010-09-06 16:45 2113public Process exec(String comm ... -
java定时器实例
2010-09-06 16:39 2277package com.my.time; import ...
相关推荐
本实例将深入探讨如何在Java中使用HttpClient进行网络通信。 首先,你需要在项目中引入HttpClient的相关依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...
接下来,我们创建一个HttpClient实例,并设置必要的参数。这可能包括连接超时、读取超时等。例如: ```java import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org....
实现调用远程servlet方法的实例。有详细注释。和依赖jar包。 //servlet路径 String url = "http://localhost:8080/zfw/servlet/CustomQueryServlet"; //参数一为表名,参数二为字段名 String params[] = {"ZC_...
1. **创建HttpClient实例**:首先,创建一个HttpClient实例,可以使用`HttpClients.createDefault()`或者自定义配置。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. **执行登录...
// 创建HttpClient实例 HttpGet httpGet = new HttpGet(requestUrl); // 构建HttpGet对象并设置请求URL try { HttpResponse response = httpClient.execute(httpGet); // 执行GET请求 ...
接下来,`HttpClientUtil.java`文件可能是实现HttpClient工具类,提供一个静态方法来创建和初始化HttpClient实例。这个方法可能包含以下步骤: 1. 创建一个CloseableHttpClient实例,通常使用HttpClientBuilder构建...
1. **创建HttpClient实例**:使用`HttpClientBuilder`或`HttpClients`静态工厂方法创建一个HttpClient实例。 ```java HttpClient httpClient = HttpClients.createDefault(); ``` 2. **构建HttpRequest**:...
在本实例中,我们将讲解如何使用HttpClient来传输XML字符串。首先,我们需要确保引入了正确的依赖,包括Apache HttpClient、HttpMime、Commons Lang以及其他的辅助库。以下是POM文件中的依赖配置: ```xml <!-- ....
- **创建HttpClient实例**:首先,我们需要创建一个HttpClient对象,例如使用`HttpClientBuilder`或`HttpClients.createDefault()`方法。 - **构建HttpGet请求**:使用`HttpGet`类创建一个HTTP GET请求,指定要...
在Java代码中,你需要先创建一个HttpClient实例。通常,我们会使用`HttpClientBuilder`来构建一个具有默认配置的客户端: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` **四、发送...
要创建一个简单的HttpClient实例,你需要以下步骤: 1. 引入Apache HttpClient库: 在你的项目中,确保已经添加了Apache HttpClient的依赖。例如,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...
我们可以使用`HttpClients.createDefault()`来创建一个默认配置的HttpClient实例。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 接下来,我们需要定义一个`HttpGet`或`HttpPost`...
- 创建HttpClient实例:使用`HttpClientBuilder`或`HttpClients.createDefault()`初始化一个客户端。 - 发起GET请求:通过`HttpGet`对象构建请求URL,然后用HttpClient的`execute()`方法发送请求。 - 发起POST...
在描述中提到了一个博客链接,虽然内容没有给出,但我们可以推测博主可能分享了一个使用Java HttpClient 3.1进行HTTP功能监控的实例。通常,这样的监控可能包括发送GET或POST请求到目标服务器,检查返回的状态码是否...
在"HttpClient实例+必备3个jar包"的项目中,包含了以下关键知识点: 1. **HttpClient类库**:HttpClient库提供了丰富的API,可以创建复杂的HTTP请求,包括设置请求头、携带请求体、处理重定向、管理Cookie等。通过...
在上面的示例代码中,我们首先创建了一个HttpClient实例,然后设置了要访问的URL,接着创建了一个GetMethod对象,并执行了GET请求。最后,我们读取了服务器返回的响应结果,并将其输出到控制台。 在下面的章节中,...
1. **HttpClient实例**:这是整个HTTP通信的核心,你需要创建一个HttpClient实例来发起HTTP请求。你可以通过`HttpClientBuilder`类配置并创建一个HttpClient对象。 2. **HttpHost**:代表一个HTTP/HTTPS服务器的...
在这个例子中,我们首先创建了一个默认的HttpClient实例,然后定义了一个HttpGet请求对象,并指定目标URL。接着,我们通过HttpClient的execute方法发送请求并获取响应。这个例子展示了HttpClient库的基本用法,实际...
创建一个HttpClient实例是使用HttpClient的第一步。例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 然后可以创建一个HttpGet或HttpPost对象来发起请求: ```java ...
1. **HttpClient的创建**:首先,你需要创建一个HttpClient实例。通常,你会使用`HttpClientBuilder`或`HttpClients`类来构建一个客户端对象。例如: ```java CloseableHttpClient httpClient = HttpClients....