URLConnection
创建连接
在java.net包中包含两个有趣的类:URL类和URLConnection类。
这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接。
@Test
public void getTest() throws IOException {
URL url = new URL("https://www.baidu.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();
}
日志信息
<!DOCTYPE html>
<!--STATUS OK-->
<html>
...
</html>
Get 与 Post
默认情况下URLConnection发送一个HTTP GET请求到web服务器。如果你想发送一个HTTP POST请求,
要调用URLConnection.setDoOutput(true)方法,如下:
URL url = new URL("https://www.baidu.com/");
URLConnection urlConnection = url.openConnection();
urlConnection.setDoOutput(true);
一旦你调用了setDoOutput(true),你就可以打开URLConnection的OutputStream,如下:
OutputStream output = urlConnection.getOutputStream();
你可以使用这个OutputStream向相应的HTTP请求中写任何数据,但你要记得将其转换成URL编码(关于URL编码的解释,自行Google)
(译者注:具体名字是:application/x-www-form-urlencoded MIME
格式编码)。
当你写完数据的时候要记得关闭OutputStream。
从 URLs 到本地文件
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。
JarURLConnection
实例代码
@Test
public void getTest() throws IOException {
String urlString = "jar:file:/Users/houbinbin/.m2/repository/com/github/houbb/log-integration/1.1.3/log-integration-1.1.3.jar!/";
URL jarUrl = new URL(urlString);
JarURLConnection connection = (JarURLConnection) jarUrl.openConnection();
Manifest manifest = connection.getManifest();
JarFile jarFile = connection.getJarFile();
//do something with Jar file...
System.out.println(jarFile.getName());
}
参考资料
http://ifeve.com/java-netword-url-urlconnection/
http://ifeve.com/java-jarurlconnection/
https://blog.csdn.net/daweibalang717/article/details/46969899