基于java URL和URLConnection(详解)
URL类将URL地址封装成对象,提供了解析URL地址的方法,如获取uri部分、host部分、端口等。
URLConnection则是URL对象和Socket连接给结合起来了,使得可以更轻松地获取发起URL请求的连接套接字。
1.URL
importjava.net.MalformedURLException;
importjava.net.URL;
publicclassURLDemo{
publicstaticvoidmain(String[]args)throwsMalformedURLException{
URLurl=newURL("http://192.168.0.124:8080/webapp/index.html?name=lisi");
intport=url.getPort();
Stringhost=url.getHost();
Stringuri_path=url.getPath();
Stringrequest_file=url.getFile();
Stringquery=url.getQuery();
System.out.println("host:"+host);
System.out.println("port:"+port);
System.out.println("uri_path:"+uri_path);
System.out.println("request_file:"+request_file);
System.out.println("query:"+query);
}
}
2.URLConnection
通过URL的openConnection()方法可以获取URLConnection对象,这个对象是面对这个URL的连接。
也就是说,这个对象其实是一个已连接套接字,它不仅具有解析http响应报文的功能,还具有套接字的相关功能(例如获取输入流、输出流等)。
仅就解析对象来说,URL对象解析的是URL地址,可以看作是解析http请求报文(如getPort(),getFile()等),而URLConnection则解析的是http响应报文(如getLastModified(),getHeaderFields()等)。
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.MalformedURLException;
importjava.net.URL;
importjava.net.URLConnection;
publicclassURLConnectionDemo{
publicstaticvoidmain(String[]args){
try{
URLurl=newURL("https://www.baidu.com/");
URLConnectionurlc=url.openConnection();
System.out.println(urlc.getURL());//解析http响应报文
InputStreamis=urlc.getInputStream();
byte[]buf=newbyte[1024];
intlen=0;
while((len=is.read(buf))!=-1){
System.out.println(newString(buf,0,len));
}
}catch(MalformedURLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
以上这篇基于javaURL和URLConnection(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。