Java网络:URL + URLConnection

时间:2020-01-09 10:36:14  来源:igfitidea点击:

java.net包包含两个有趣的类:URL类和URLConnection类。这些类可用于创建与Web服务器(HTTP服务器)的客户端连接。这是一个简单的代码示例:

URL url = new URL("http://Hyman.com");

URLConnection urlConnection = url.openConnection();
InputStream input = urlConnection.getInputStream();

int data = input.read();
while(data != -1){
    System.out.print((char) data);
    data = input.read();
}
input.close();

HTTP GET和POST

默认情况下," URLConnection"将HTTP GET请求发送到Web服务器。如果我们想发送HTTP POST请求,请调用URLConnection.setDoOutput(true)方法,如下所示:

URL url = new URL("http://Hyman.com");

URLConnection urlConnection = url.openConnection();
urlConnection.setDoOutput(true);

设置好名为setDoOutput(true)的设置后,我们可以打开URLConnection的OutputStream,如下所示:

OutputStream output = urlConnection.getOutputStream();

使用这个OutputStream,我们可以在HTTP请求的主体中写入所需的任何数据。记住要对其进行URL编码(搜索Google以获取URL编码的说明)。

完成向其写入数据后,请记住关闭" OutputStream"。

本地文件的URL

URL类也可用于访问本地文件系统中的文件。因此,如果我们需要代码不知道文件是来自网络还是本地文件系统,则URL类可以是打开文件的便捷方法。

这是一个如何使用URL类在本地文件系统中打开文件的示例:

URL url = new URL("file:/c:/data/test.txt");

URLConnection urlConnection = url.openConnection();
InputStream input = urlConnection.getInputStream();

int data = input.read();
while(data != -1){
    System.out.print((char) data);
    data = input.read();
}
input.close();

注意,与通过HTTP访问Web服务器上的文件的唯一区别是URL:" file:/ c:/data/test.txt"。