`
梦中有你
  • 浏览: 60331 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

初探HttpClient——把百度首页扒下来放到本地

阅读更多

闲着没事,找点东西学习,呵呵^^

 

用HttpClient生成静态页面Demo:

 

 

 

package tests;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

/**
 * HttpClient生成静态页测试
 * 
 * @author Java
 * @date 2012-02-07 22:55
 */
public class TestHttpClient {

	/**
	 * 测试将百度首页生成到C:\\test\\baidu.html
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		try {

			writeHTML(getSiteContent("http://www.baidu.com"),"C:\\test\\baidu.html");
			System.out.println("OK,生成静态页成功!");

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 根据指定的URL获取网页的内容
	 * 
	 * @param url 访问地址URL
	 *            
	 * @return 载有内容的字符串
	 */
	public static String getSiteContent(String url) {
		HttpClient httpClient = new DefaultHttpClient();
		HttpGet request = new HttpGet(url);
		String content = null;
		try {

			HttpResponse response = httpClient.execute(request);
			HttpEntity entity = response.getEntity();
			content = EntityUtils.toString(entity);
			// System.out.println(EntityUtils.getContentCharSet(entity));
			// System.out.println(EntityUtils.getContentMimeType(entity));
			// System.out.println(EntityUtils.toString(entity));

		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return content;

	}

	/**
	 * 将指定的文本写入指定的目录的文件
	 * 
	 * @param content 将要写入的文本
	 *            
	 * @param filePath 文件路径
	 *             
	 * @throws IOException IO异常
	 *             
	 */
	public static void writeHTML(String content, String filePath)
			throws IOException {
		
		File file = new File(filePath);
		File fileParent = file.getParentFile();
		if(!fileParent.exists()) 
		{
			fileParent.mkdirs();
		}
			
		Writer writer = new FileWriter(file);
		writer.write(content);
		writer.close();

	}

}
分享到:
评论

相关推荐

    httpclient jar包——相关jar

    httpclient jar包——相关jar,用于http相关开发! httpclient jar包——相关jar,用于http相关开发! httpclient jar包——相关jar,用于http相关开发!

    java使用HttpClient通过url下载文件到本地

    在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到本地。以下是对这个主题的详细阐述: 1. **HttpClient介绍**: HttpClient是一个Java库,支持HTTP/1.1协议以及部分HTTP/2特性。它提供了一组高级...

    httpClient 调用远程接口 获取数据到本地文件夹

    在这个场景中,我们使用HttpClient来调用远程接口,从电信公司的网站获取可用的新手机号码信息,并将这些数据存储到本地文件中。以下是对这个过程的详细解释: 1. **HttpClient的基本使用**: HttpClient提供了一...

    httpClient调用远程接口获取数据到本地文件夹

    在这个例子中,我们使用HttpClient来调用远程接口,从电信公司的网站获取可用手机号码的数据,并将其存储到本地文件系统。以下是对这个过程的详细解释: 1. **HttpClient的引入与配置**: 首先,我们需要在项目中...

    httpclient4之百度模拟登陆,回复与58同城自动登陆

    总的来说,HttpClient4提供了一个强大而灵活的框架,可以用来模拟登录各种网站,包括百度和58同城。然而,每个网站的登录机制都有所不同,所以需要根据具体情况进行调整和优化。在开发过程中,务必遵守网站的使用...

    httpclient-4.5.3中文版文档,很实用

    2. **连接管理**:HttpClient提供了`HttpConnectionManager`接口,用于管理到服务器的连接。默认实现`PoolingHttpClientConnectionManager`支持连接池,有效利用和重用TCP连接,降低延迟。 3. **请求和响应构建器**...

    httpclient-4.5.13-API文档-中英对照版.zip

    赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...

    使用httpclient访问servlet

    例如,404表示找不到资源,500表示服务器内部错误。 7. **连接管理和重试策略**: HttpClient支持连接池管理,通过`PoolingHttpClientConnectionManager`可以控制并发连接数。同时,可以设置重试策略,如`...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    - 接下来,使用 HttpClient 执行 GET 请求,并获取响应。最后,将响应体转换为 JSON 对象返回。 4. **POST 请求**: - `doPostJson` 方法类似,但使用 `HttpPost` 对象。它创建一个 `HttpPost` 实例,并设置请求...

    HttpClient发送json、普通参数类型的Post请求(csdn)————程序.pdf

    本文主要讨论如何使用HttpClient发送JSON格式和普通参数类型的POST请求。首先,我们来看一下所需的Maven依赖。 ```xml <groupId>commons-httpclient <artifactId>commons-httpclient <version>3.1 <groupId>...

    Java通过HttpClient调用百度地图Demo

    在这个特定的示例中,我们关注的是如何使用HttpClient来调用百度地图的API,创建一个简单的Demo。下面将详细介绍这个过程以及相关的技术知识点。 首先,你需要在项目中引入Apache HttpClient库。这可以通过Maven或...

    httpclient httpclient.jar

    `httpclient.jar`文件是HttpClient库的二进制形式,包含所有必要的类和资源,可以直接引入到Java项目中使用,无需构建过程。将这个JAR添加到项目的类路径后,就可以开始编写HTTP客户端代码了。 实战示例: ```java...

    httpClient使用指南最新版

    - **3.5 Cookie持久化**: 将Cookies保存到本地存储中,以便下次访问时使用。 - **3.6 HTTP状态管理和执行上下文**: 可以通过执行上下文来管理Cookies和其他状态信息。 #### 四、HTTP认证 - **4.1 用户凭证**: 包含...

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    这个实例主要涉及如何配置HttpClient来忽略SSL(Secure Socket Layer)验证,这对于在开发和测试环境中处理自签名证书或未认证的服务器非常有用。以下将详细介绍HttpClient的使用以及如何进行SSL验证的忽略。 首先...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    随着技术的发展,从早期的HttpClient 3.x版本迁移到更新的HttpComponents HttpClient 4.x版本是一个常见的需求。这不仅仅是一个简单的升级过程,而是涉及到对API的变化、编程模型的更新以及对网络编程的更深层次理解...

    httpclient.jar包下载

    此外,理解HttpClient的配置和设置非常重要,这直接影响到其性能和功能。例如,正确设置连接超时、读取超时以及连接池大小,可以避免因网络延迟导致的问题。 在实际开发中,我们可以通过Maven或Gradle等构建工具来...

    Spring 实现远程访问详解——httpclient

    本章将通过apache httpclient实现远程访问。说得简单就是直接通过spring requestmapping即请求映射url访问远程服务。 1. 远程访问流程 1) 服务器在控制器定义远程访问请求映射路径 2) 客户端通过apache httpclient的...

    httpclient-4.5.13-sources.jar

    httpclient-4.5.13-sources.jar

    httpclient

    这涉及到证书的信任和验证,以确保通信的安全。 9. **性能优化**: 可以通过设置连接超时、读写超时、最大连接数、连接复用策略等来优化HttpClient的性能。 10. **异步操作**: HttpClient也支持异步操作,通过`...

Global site tag (gtag.js) - Google Analytics