乐趣区

关于人工智能:63-URL与URLConnection

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

退出移动版