Java教程-Java URLConnection 类
Java URLConnection 类
Java URLConnection 类表示URL和应用程序之间的通信链接。它可以用于读取和写入由URL引用的指定资源。
什么是URL?
- URL 是统一资源定位符的缩写。URL 是一种字符串形式,用于在万维网(WWW)上查找资源。
- URL 由两个组成部分组成:
- 访问资源所需的协议。
- 资源的位置。
URLConnection 类的特点
- URLConnection 是一个抽象类。两个子类 HttpURLConnection 和 JarURLConnection 用于在客户端 Java 程序和互联网上的 URL 资源之间建立连接。
- 使用 URLConnection 类,用户可以读取和写入由 URL 对象引用的任何资源。
- 一旦建立连接并且 Java 程序拥有一个 URLConnection 对象,我们可以使用它来读取、写入或获取其他信息,如内容长度等。
构造方法
| Constructor | Description |
|---|---|
| 1) protected URLConnection(URL url) | 它构造到指定 URL 的 URL 连接。 |
URLConnection 类的方法
| Method | Description |
|---|---|
| void addRequestProperty(String key, String value) | 它添加了一个由键值对指定的通用请求属性 |
| void connect() | 如果尚未建立这样的连接,它会打开到此 URL 引用的资源的通信链接。 |
| boolean getAllowUserInteraction() | 它返回对象的 allowUserInteraction 字段的值。 |
| int getConnectionTimeout() | 它返回连接超时设置。 |
| Object getContent() | 它检索 URL 连接的内容。 |
| Object getContent(Class[] classes) | 它检索 URL 连接的内容。 |
| String getContentEncoding() | 它返回内容编码标头字段的值。 |
| int getContentLength() | 它返回内容长度标头字段的值。 |
| long getContentLengthLong() | 它返回 content-length 标头字段的值。 |
| String getContentType() | 它返回日期标题字段的值。 |
| long getDate() | 它返回日期标题字段的值。 |
| static boolean getDefaultAllowUserInteraction() | 它返回 allowUserInteraction 字段的默认值。 |
| boolean getDefaultUseCaches() | 它返回 URLConnetion 的 useCaches 标志的默认值。 |
| boolean getDoInput() | 它返回 URLConnection 的 doInput 标志的值。 |
| boolean getDoInput() | 它返回 URLConnection 的 doOutput 标志的值。 |
| long getExpiration() | 它返回过期头文件的值。 |
| static FileNameMap getFilenameMap() | 它从数据文件加载文件名映射。 |
| String getHeaderField(int n) | 它返回第 n个头字段的值 |
| String getHeaderField(String name) | 它返回命名头字段的值 |
| long getHeaderFieldDate(String name, long Default) | 它返回解析为数字的命名字段的值。 |
| int getHeaderFieldInt(String name, int Default) | 它返回解析为数字的命名字段的值。 |
| String getHeaderFieldKey(int n) | 它返回第 n个标头字段的键。 |
| long getHeaderFieldLong(String name, long Default) | 它返回解析为数字的命名字段的值。 |
| Map<String, List<String>> getHeaderFields() | 它返回标头字段的不可修改的 Map。 |
| long getIfModifiedSince() | 它返回对象的 ifModifiedSince 字段的值。 |
| InputStream getInputStream() | 它返回一个从打开条件读取的输入流。 |
| long getLastModified() | 它返回最后修改的头字段的值。 |
| OutputStream getOutputStream() | 它返回一个写入连接的输出流。 |
| Permission getPermission() | 它返回一个权限对象,表示建立由对象表示的连接所需的权限。 |
| int getReadTimeout() | 它返回读取超时的设置。 |
| Map<String, List<String>> getRequestProperties() | 它返回连接的命名通用请求属性的值。 |
| URL getURL() | 它返回 URLConnection 的 URL 字段的值。 |
| boolean getUseCaches() | 它返回 URLConnection 的 useCaches 字段的值。 |
| Static String guessContentTypeFromName(String fname) | 它尝试根据URL 的指定文件组件来确定对象的内容类型。 |
| static String guessContentTypeFromStream(InputStream is) | 它尝试根据输入流开头的字符来确定输入流的类型。 |
| void setAllowUserInteraction(boolean allowuserinteraction) | 它设置此 URLConnection 的 allowUserInteraction 字段的值。 |
| static void setContentHandlerFactory(ContentHandlerFactory fac) | 它设置应用程序的 ContentHandlerFactory。 |
| static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction) | 它将所有未来 URLConnection 对象的 allowUserInteraction 字段的默认值设置为指定值。 |
| void steDafaultUseCaches(boolean defaultusecaches) | 它将 useCaches 字段的默认值设置为指定值。 |
| void setDoInput(boolean doinput) | 它将此 URLConnection 的 doInput 字段的值设置为指定值。 |
| void setDoOutput(boolean dooutput) | 它将 URLConnection 的 doOutput 字段的值设置为指定值。 |
如何获取 URLConnection 类的对象
URL 类的 openConnection() 方法返回 URLConnection 类的对象。
语法:
public URLConnection openConnection()throws IOException{} 通过 URLConnecton 类显示网页的源代码
URLConnection 类提供了许多方法。我们可以使用 getInputStream() 方法显示网页的所有数据。它返回指定 URL 的流中的所有数据,可以读取和显示。
Java URLConnection 类的示例
import java.io.*;
import java.net.*;
public class URLConnectionExample {
public static void main(String[] args){
try{
URL url=new URL("http://www.javatpoint.com/java-tutorial");
URLConnection urlcon=url.openConnection();
InputStream stream=urlcon.getInputStream();
int i;
while((i=stream.read())!=-1){
System.out.print((char)i);
}
}catch(Exception e){System.out.println(e);}
}
}