URL代表"统一资源定位器",代表万维网上的资源,例如网页或FTP目录。
本节向您展示如何编写与URL通信的Java程序。 URL可以分为以下部分:
protocol://host:port/path?query#ref
例s of protocols include HTTP, HTTPS, FTP, and File. The path is also referred to as the filename, and the host is also called the authority.
以下是协议为HTTP的网页的URL-
https://www.amrood.com/index.htm?language=en#j2se
请注意,此URL未指定端口,在这种情况下,将使用协议的默认端口。使用HTTP时,默认端口为80。
URL类方法
java.net.URL 类代表一个URL,并具有一套完整的方法来操纵Java中的URL。
URL类具有几个用于创建URL的构造函数,包括以下内容-
Sr.No. | Constructors & Description |
---|---|
1 |
公共URL(字符串协议,字符串主机,int端口,字符串文件)抛出MalformedURLException 通过将给定的部分放在一起来创建URL。 |
2 |
公共URL(字符串协议,字符串主机,字符串文件)抛出MalformedURLException 除使用给定协议的默认端口外,其他与之前的构造函数相同。 |
3 |
公共URL(字符串url)引发MalformedURLException 从给定的字符串创建一个URL。 |
4 |
公共URL(URLcontext,字符串url)抛出MalformedURLException 通过将URL和String参数一起解析来创建URL。 |
URL类包含许多用于访问表示的URL各个部分的方法。 URL类中的某些方法包括以下内容-
Sr.No. | Method & Description |
---|---|
1 |
公共字符串getPath() 返回URL的路径。 |
2 |
公共字符串getQuery() 返回URL的查询部分。 |
3 |
公共字符串getAuthority() 返回URL的权限。 |
4 |
public int getPort() 返回URL的端口。 |
5 |
public int getDefaultPort() 返回URL协议的默认端口。 |
6 |
公共字符串getProtocol() 返回URL的协议。 |
7 |
公共字符串getHost() 返回URL的主机。 |
8 |
公共字符串getHost() 返回URL的主机。 |
9 |
公共字符串getFile() 返回URL的文件名。 |
10 |
公共字符串getRef() 返回URL的参考部分。 |
11 |
公共URLConnection openConnection()引发IOException 打开与URL的连接,允许客户端与资源进行通信。 |
例
以下URLDemo程序演示了URL的各个部分。在命令行上输入URL,URLDemo程序输出给定URL的每个部分。
//File Name : URLDemo.java import java.net.*; import java.io.*; public class URLDemo { public static void main(String [] args) { try { URL url = new URL("https://www.amrood.com/index.htm?language=en#j2se"); System.out.println("URL is " + url.toString()); System.out.println("protocol is " + url.getProtocol()); System.out.println("authority is " + url.getAuthority()); System.out.println("file name is " + url.getFile()); System.out.println("host is " + url.getHost()); System.out.println("path is " + url.getPath()); System.out.println("port is " + url.getPort()); System.out.println("default port is " + url.getDefaultPort()); System.out.println("query is " + url.getQuery()); System.out.println("ref is " + url.getRef()); } catch (IOException e) { e.printStackTrace(); } } }
该程序的示例运行将产生以下输出-
输出
URL is https://www.amrood.com/index.htm?language=en#j2se protocol is http authority is www.amrood.com file name is /index.htm?language=en host is www.amrood.com path is /index.htm port is -1 default port is 80 query is language=en ref is j2se
URLConnections类方法
openConnection()方法返回 java.net.URLConnection ,这是一个抽象类,其子类表示各种类型的URL连接。
例如-
-
如果连接到协议为HTTP的URL,则openConnection()方法将返回HttpURLConnection对象。
-
如果连接到表示JAR文件的URL,则openConnection()方法将返回JarURLConnection对象,等等。
URLConnection类具有许多用于设置或确定有关连接信息的方法,包括以下几种:
Sr.No. | Method & Description |
---|---|
1 |
对象getContent() 检索此URL连接的内容。 |
2 |
对象getContent(Class []类) 检索此URL连接的内容。 |
3 |
String getContentEncoding() 返回内容编码标头字段的值。 |
4 |
int getContentLength() 返回content-length标头字段的值。 |
5 |
字符串getContentType() 返回内容类型标题字段的值。 |
6 |
int getLastModified() 返回最后修改的标头字段的值。 |
7 |
long getExpiration() 返回过期的标头字段的值。 |
8 |
long getIfModifiedSince() 返回此对象的ifModifiedSince字段的值。 |
9 |
public void setDoInput(布尔输入) 传入true表示该连接将用于输入。默认值为true,因为客户端通常从URLConnection读取。 |
10 |
public void setDo输出(boolean output) 传入true表示该连接将用于输出。默认值为false,因为许多类型的URL不支持写入。 |
11 |
公共InputStream getInputStream()引发IOException 返回URL连接的输入流,以从资源中读取。 |
12 |
public 输出Stream get输出Stream() throws IOException 返回用于写入资源的URL连接的输出流。 |
13 |
公共URL getURL() 返回此URLConnection对象连接到的URL。 |
例
以下URLConnectionDemo程序连接到从命令行输入的URL。
如果URL表示HTTP资源,则将连接强制转换为HttpURLConnection,并且一次读取一行中的数据。
//File Name : URLConnDemo.java import java.net.*; import java.io.*; public class URLConnDemo { public static void main(String [] args) { try { URL url = new URL("https://www.amrood.com"); URLConnection urlConnection = url.openConnection(); HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; }else { System.out.println("Please enter an HTTP URL."); return; } BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream())); String urlString = ""; String current; while((current = in.readLine()) != null) { urlString += current; } System.out.println(urlString); } catch (IOException e) { e.printStackTrace(); } } }
该程序的示例运行将产生以下输出-
输出
$java URLConnDemo .....a complete HTML content of home page of amrood.com.....
参考链接
https://www.learnfk.com/java/java-url-processing.html
标签:返回,URL,Processing,无涯,System,url,字符串,println From: https://blog.51cto.com/u_14033984/8891566