`
whoosh
  • 浏览: 234916 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

了解 JDK 中有关HTTP URL 处理的API

 
阅读更多
public class HttpPageFetch extends TestCase {
	
	//最简单的获取网页内容的示例
	@Test
	public void testFetch01() {
		try {
			String urlString = "http://empower.edtest.com:8080/";
			URL url = new URL(urlString); // 代表了一个网址
			InputStream is = url.openStream(); // 获得网页的内容
			// 将InputStream转换为Reader,并使用缓冲读取,提高效率,同时可以按行读取内容
			BufferedReader br = new BufferedReader(new InputStreamReader(is,
					"UTF-8"));
			String line = null;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
			is.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 上述例子太过简单,假如你需要通过代理来访问网络,那么,你需要的是URLConnection!即,在获取内容之前,先设置代理!
	 */
	public void testFetch02() {
		try {
			String urlString = "http://www.ibm.com/developerworks/cn/java/j-javaroundtable/index.html";
			URL url = new URL(urlString); // 代表了一个网址
			// 首先创建HTTP代理,指定代理的地址和端口
			Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(
					"79.120.193.53", 80));
			/**
			 * 首先打开一个连接对象 可以通过这个对象,在真正发起请求之前,设置一些其它的信息 比如:代理服务器等
			 */
			URLConnection conn = url.openConnection(proxy);
			InputStream is = conn.getInputStream(); // 获得网页的内容
			// 将InputStream转换为Reader,并使用缓冲读取,提高效率,同时可以按行读取内容
			BufferedReader br = new BufferedReader(new InputStreamReader(is,
					"UTF-8"));
			String line = null;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
			is.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * HttpURLConnection 是URLConnection 的子类,它提供了更多与HTTP 有关的处理方法,
	 * 比如:如果你希望获得服务器响应的HTTP代码,比如:2XX,3XX等 比如:你希望设置是否自动进行客户端重定向(缺省是自动重定向)
	 * 比如:你希望指定向服务器提交的 HTTP METHOD(GET 或POST 等)
	 */
	public void testFetch03() {
		try {
			String urlString = "http://localhost:8080/cms/backend/main.jsp";
			URL url = new URL(urlString); // 代表了一个网址
			// 设置是否自动进行重定向,缺省这个值为true
			HttpURLConnection.setFollowRedirects(false);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			// 设置HTTP METHOD
			conn.setRequestMethod("GET");
			int code = conn.getResponseCode();
			System.out.println("服务器响应代码为:" + code);
			InputStream is = conn.getInputStream();
			// 将InputStream转换为Reader,并使用缓冲读取,提高效率,同时可以按行读取内容
			BufferedReader br = new BufferedReader(new InputStreamReader(is,
					"UTF-8"));
			String line = null;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
			is.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

本文参考:李腾飞学习笔记HttpClient 入门。

分享到:
评论

相关推荐

    jdk api 1.8_中文文档

    《JDK API 1.8_中文文档》是Java开发者不可或缺的重要参考资料,它详细记录了Java Development Kit(JDK)1.8版本中的各种类库、接口、方法和异常等核心组件,为开发者提供了全面而深入的API使用指南。这份文档以...

    jdk_1.9_中,英文api

    JDK 1.9内置了一个新的HTTP客户端API(`java.net.http`包),取代了过时的`java.net.URL`和`java.net.HttpURLConnection`,提供了更现代、更高效的HTTP通信能力。 **其他改进** - 新增了`java.time`包中的`Year...

    jdk6_api文档 中文版

    JDK6中包含`javax.xml`和`com.sun.org.apache.xerces.internal.jaxp`等包,提供了处理XML文档的API,如`DocumentBuilderFactory`和`TransformerFactory`,可以解析XML文档并转换为其他格式。 九、数据库连接 `java...

    JDK_API中文版全套离线

    JDK_API是Java语言的核心,它提供了大量的类库,涵盖了输入输出、网络通信、图形用户界面(GUI)、多线程、数据库连接、XML处理等多个领域。理解并熟练运用这些API是成为一名合格Java开发者的必备技能。 JDK_API_1_...

    jdK6 中文API

    例如,`String`类用于处理文本,`ArrayList`和`HashMap`在数据结构中广泛使用,`InputStream`和`OutputStream`处理输入输出流。 2. **集合框架**:JDK 6引入了增强的for循环(foreach),使得遍历集合更加简洁。...

    JDK API中文文档

    JDK API中文文档是Java开发工具包(Java Development Kit)的重要组成部分,它是Java程序员日常开发过程中不可或缺的参考资料。这份文档详细地介绍了Java平台标准版(Java SE)中的各种类库、接口、方法以及它们的...

    JDK_API_1.6_中文版本CHM

    在实际开发中,了解并熟练使用JDK API是每个Java程序员的必备技能。这个中文版本的CHM文档,无疑降低了学习和查询的门槛,使得开发者能够更好地理解和利用Java的强大功能。无论是初学者还是经验丰富的开发者,都应该...

    jdk9中文开发帮助文档jdk-9_doc-api

    中文开发帮助文档 `jdk-9_doc-api.CHM` 提供了详尽的 API 文档,包括所有类、接口、枚举和注解的描述,以及示例代码,帮助开发者快速理解和使用 JDK 9 中的新特性和功能。无论是初学者还是经验丰富的 Java 开发者,...

    java开发手册 api文档(jdk1.8中文)

    日期时间处理在JDK1.8中得到了大幅改进,`java.time`包引入了新的日期时间API,如`LocalDate`、`LocalTime`、`LocalDateTime`,以及`ZonedDateTime`和`Duration`等,这些类提供了更加友好和强大的日期时间操作功能。...

    Jdk中文API第二部分

    这个"Jdk中文API第二部分"很显然是一个针对JDK API的中文版文档,它可能包含了JDK中的核心类、接口以及方法的详细解释,帮助中国开发者更好地理解和使用这些组件。 在JDK API文档中,以下几个文件通常包含的重要...

    JDK6API中文参考

    总的来说,JDK 6 API中文参考文档是Java开发者不可或缺的工具,它涵盖了JDK 6中的所有核心API,有助于开发者提高开发效率,编写出高效、稳定、易于维护的Java应用程序。对于初学者和经验丰富的开发者而言,深入研究...

    jdk1.8中文 java api jdk 中文

    以上只是Java API JDK 1.8中部分关键知识点的概述,实际学习中需要结合具体的API文档和实践项目来深入了解和应用。通过深入学习和理解这些内容,开发者可以提高编程效率,写出更加高效、健壮的Java应用程序。

    jdk_api chinese

    根据提供的信息来看,这里似乎存在一定的误解或者错误。在标题、描述及标签中提到的...通过深入了解JDK API的不同部分,开发者可以更好地利用其功能来解决实际问题。希望本文能够帮助读者对JDK API有一个更全面的认识。

    jdk-11.0.1_api

    2. **HTTP客户端**:JDK 11内置了一个新的HTTP客户端API(`java.net.http`包),提供异步和同步的HTTP/1.1和HTTP/2请求处理,替代了旧的`java.net.URL`和`java.net.HttpURLConnection`。 3. **动态类型**:`var`...

    jdk-9-doc-api_英文

    通过"jdk-9_doc-api_英文"压缩包,开发者可以详细查阅这些特性的API,了解如何在自己的项目中使用它们。每个API条目通常包括以下部分: - **概述**:描述接口或类的主要用途和功能。 - **构造函数**:列出可用的...

    JDK1.6中文文档api

    7. **日期和时间(java.util.Date和java.time)**:JDK 1.6中的日期时间处理主要是通过Date类,但其API设计并不理想,后来在Java 8中引入了新的java.time包,提供了更强大的日期和时间处理功能。 8. **反射(java....

    Jdk api 1.6中文文档

    《Jdk api 1.6中文文档》是一个重要的资源...以上只是JDK 1.6 API中的一部分知识点,实际文档中涵盖了更多细节和示例。通过深入学习和理解这个文档,开发者可以熟练掌握Java 1.6的核心特性,从而编写高效、可靠的代码。

    android api +jdk api帮助文档

    本文将深入探讨Android API与JDK API这两个关键的API集合,以及它们在开发过程中的作用。 一、JDK API:Java开发基石 JDK API是Java开发的基础,它包含了Java标准库的所有类和接口,这些类和接口构成了Java编程...

    JDK 11 API中文帮助文档

    **JDK 11 API中文帮助文档**是Java开发者的重要参考资料,它提供了JDK 11版本中的所有类、接口、方法和常量的详细说明,以中文语言呈现,便于国内开发者理解和使用。该文档是Java开发环境中不可或缺的一部分,帮助...

Global site tag (gtag.js) - Google Analytics