1. 什么是URL?
URL(Uniform Resource Locator,对立资源定位符)是一个指向互联网上某个资源的地址。URL通常包含以下几个局部:协定、主机名、端口号(可选)和资源门路。例如,https://www.example.com:80/index.html
是一个URL,其中https
是协定,www.example.com
是主机名,80
是端口号,/index.html
是资源门路。
2. Java中的URL类
在Java中,java.net.URL
类能够用于示意一个URL。URL类提供了一些办法,以便咱们能够轻松地拜访和操作URL的各个局部。以下是一些罕用办法:
URL(String spec)
:依据指定的字符串创立一个URL对象。URL(String protocol, String host, int port, String file)
:依据指定的协定、主机名、端口号和文件名创立一个URL对象。String getProtocol()
:获取URL的协定局部。String getHost()
:获取URL的主机名局部。int getPort()
:获取URL的端口号局部。String getFile()
:获取URL的文件(资源门路)局部。
3. 应用URL读取网络资源
应用URL类,咱们能够轻松地拜访和读取互联网上的资源。以下是一个简略示例,用于读取网页的内容:
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;public class URLExample { public static void main(String[] args) { try { URL url = new URL("https://www.example.com/"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); } in.close(); } catch (IOException e) { e.printStackTrace(); } }}
4. 什么是URLConnection?
java.net.URLConnection
类示意应用程序和URL之间的通信链接。它提供了一组办法,用于读取和写入网络资源的数据。URLConnection类的罕用办法有:
void connect()
:建设到URL援用的资源的通信链接(如果尚未建设这样的连贯)。InputStream getInputStream()
:获取一个输出流,用于从URLConnection读取数据。OutputStream getOutputStream()
:获取一个输入流,用于向URLConnection写入数据。void setDoOutput(boolean dooutput)
:设置是否容许输入数据。 默认为false。void setDoInput(boolean doinput)
:设置是否容许输出数据。 默认为true。
5. 应用URLConnection读取和写入网络资源
以下是一个简略的示例,演示如何应用URLConnection从网络资源读取数据:
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;public class URLConnectionExample { public static void main(String[] args) { try { URL url = new URL("https://www.example.com/"); URLConnection connection = url.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); } in.close(); } catch (IOException e) { e.printStackTrace(); } }}
上面的示例演示了如何应用HttpURLConnection
(URLConnection的子类)向服务器发送POST申请并获取响应:
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;public class HttpURLConnectionPOSTExample { public static void main(String[] args) { try { URL url = new URL("https://www.example.com/login"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setDoInput(true); String postData = "username=user&password=pass"; OutputStream outputStream = connection.getOutputStream(); outputStream.write(postData.getBytes("UTF-8")); outputStream.flush(); outputStream.close(); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); } in.close(); } catch (IOException e) { e.printStackTrace(); } }}
在这个示例中,咱们首先创立了一个HttpURLConnection
对象,并设置申请办法为POST
。而后,咱们通过调用setDoOutput(true)
和setDoInput(true)
容许输入输出。接下来,咱们将POST数据写入输入流,而后从输出流中读取服务器响应。
这就是对于Java网络编程中的URL和URLConnection的介绍。心愿这些示例和解释能帮忙你更好地了解这个概念。祝你学习欢快!
举荐浏览:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g