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_中文文档》是Java开发者不可或缺的重要参考资料,它详细记录了Java Development Kit(JDK)1.8版本中的各种类库、接口、方法和异常等核心组件,为开发者提供了全面而深入的API使用指南。这份文档以...
JDK 1.9内置了一个新的HTTP客户端API(`java.net.http`包),取代了过时的`java.net.URL`和`java.net.HttpURLConnection`,提供了更现代、更高效的HTTP通信能力。 **其他改进** - 新增了`java.time`包中的`Year...
JDK6中包含`javax.xml`和`com.sun.org.apache.xerces.internal.jaxp`等包,提供了处理XML文档的API,如`DocumentBuilderFactory`和`TransformerFactory`,可以解析XML文档并转换为其他格式。 九、数据库连接 `java...
JDK_API是Java语言的核心,它提供了大量的类库,涵盖了输入输出、网络通信、图形用户界面(GUI)、多线程、数据库连接、XML处理等多个领域。理解并熟练运用这些API是成为一名合格Java开发者的必备技能。 JDK_API_1_...
例如,`String`类用于处理文本,`ArrayList`和`HashMap`在数据结构中广泛使用,`InputStream`和`OutputStream`处理输入输出流。 2. **集合框架**:JDK 6引入了增强的for循环(foreach),使得遍历集合更加简洁。...
JDK API中文文档是Java开发工具包(Java Development Kit)的重要组成部分,它是Java程序员日常开发过程中不可或缺的参考资料。这份文档详细地介绍了Java平台标准版(Java SE)中的各种类库、接口、方法以及它们的...
日期时间处理在JDK1.8中得到了大幅改进,`java.time`包引入了新的日期时间API,如`LocalDate`、`LocalTime`、`LocalDateTime`,以及`ZonedDateTime`和`Duration`等,这些类提供了更加友好和强大的日期时间操作功能。...
中文开发帮助文档 `jdk-9_doc-api.CHM` 提供了详尽的 API 文档,包括所有类、接口、枚举和注解的描述,以及示例代码,帮助开发者快速理解和使用 JDK 9 中的新特性和功能。无论是初学者还是经验丰富的 Java 开发者,...
这个"Jdk中文API第二部分"很显然是一个针对JDK API的中文版文档,它可能包含了JDK中的核心类、接口以及方法的详细解释,帮助中国开发者更好地理解和使用这些组件。 在JDK API文档中,以下几个文件通常包含的重要...
总的来说,JDK 6 API中文参考文档是Java开发者不可或缺的工具,它涵盖了JDK 6中的所有核心API,有助于开发者提高开发效率,编写出高效、稳定、易于维护的Java应用程序。对于初学者和经验丰富的开发者而言,深入研究...
以上只是Java API JDK 1.8中部分关键知识点的概述,实际学习中需要结合具体的API文档和实践项目来深入了解和应用。通过深入学习和理解这些内容,开发者可以提高编程效率,写出更加高效、健壮的Java应用程序。
根据提供的信息来看,这里似乎存在一定的误解或者错误。在标题、描述及标签中提到的...通过深入了解JDK API的不同部分,开发者可以更好地利用其功能来解决实际问题。希望本文能够帮助读者对JDK API有一个更全面的认识。
在实际开发中,了解并熟练使用JDK API是每个Java程序员的必备技能。这个中文版本的CHM文档,无疑降低了学习和查询的门槛,使得开发者能够更好地理解和利用Java的强大功能。无论是初学者还是经验丰富的开发者,都应该...
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_英文"压缩包,开发者可以详细查阅这些特性的API,了解如何在自己的项目中使用它们。每个API条目通常包括以下部分: - **概述**:描述接口或类的主要用途和功能。 - **构造函数**:列出可用的...
7. **日期和时间(java.util.Date和java.time)**:JDK 1.6中的日期时间处理主要是通过Date类,但其API设计并不理想,后来在Java 8中引入了新的java.time包,提供了更强大的日期和时间处理功能。 8. **反射(java....
《Jdk api 1.6中文文档》是一个重要的资源...以上只是JDK 1.6 API中的一部分知识点,实际文档中涵盖了更多细节和示例。通过深入学习和理解这个文档,开发者可以熟练掌握Java 1.6的核心特性,从而编写高效、可靠的代码。
本文将深入探讨Android API与JDK API这两个关键的API集合,以及它们在开发过程中的作用。 一、JDK API:Java开发基石 JDK API是Java开发的基础,它包含了Java标准库的所有类和接口,这些类和接口构成了Java编程...
**JDK 11 API中文帮助文档**是Java开发者的重要参考资料,它提供了JDK 11版本中的所有类、接口、方法和常量的详细说明,以中文语言呈现,便于国内开发者理解和使用。该文档是Java开发环境中不可或缺的一部分,帮助...