java網絡編程2-URL和URI

//建立url能夠指定請求的url協議,但不一樣的jvm支持的協議可能不相同(大部分支持http、file、https)
//構造只判斷字符串中的協議支不支持,而不判斷url的正確性
URL url=new URL("http://www.baidu.com");
System.out.println(url.getProtocol());
System.out.println(url.getHost());網絡

//url中沒有指定端口則返回-1
System.out.println(url.getPort());
//url中沒有指定端口則協議的默認端口,沒有該協議的默認端口的返回-1
System.out.println(url.getDefaultPort()); jvm


//區別
url.getFile();//返回路徑信息帶有查詢參數
url.getPath();//只返回路徑 編碼


//獲取url的內容(http協議不包含頭部內容,也不包含其它協議內容)
InputStream input= url.openStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(input,"utf-8"));//不一樣的url可能編碼不同
String tmp=null;
while((tmp=reader.readLine())!=null){
  System.out.println(tmp);
} url


//獲取url中的底層的鏈接對象,能夠對獲取更多的信息和操做
//好比直接url獲取內容默認不會超時,這可能引發程序的阻塞,經過鏈接對象能夠設置超時時間
URLConnection connection= url.openConnection(); spa


//對url中的特殊字符串進行編碼
URLDecoder.decode("xxxx","utf-8");
URLEncoder.encode("xxxx","utf-8");code

 

//URI沒有網絡獲取功能 對象

URI uri=new URI("http://www.baidu.com");
System.out.println(uri.getHost());
System.out.println(uri.getPort());
utf-8

相關文章
相關標籤/搜索