查看: 1768|回复: 0

[Java代码] 基于java URL和URLConnection(详解)

发表于 2018-2-25 08:00:00

URL类将URL地址封装成对象,提供了解析URL地址的方法,如获取uri部分、host部分、端口等。

URLConnection则是URL对象和Socket连接给结合起来了,使得可以更轻松地获取发起URL请求的连接套接字。

1.URL

  1. import java.net.MalformedURLException;
  2. import java.net.URL;
  3. public class URLDemo {
  4. public static void main(String[] args) throws MalformedURLException {
  5. URL url = new URL("http://192.168.0.124:8080/webapp/index.html?name=lisi");
  6. int port = url.getPort();
  7. String host = url.getHost();
  8. String uri_path = url.getPath();
  9. String request_file = url.getFile();
  10. String query = url.getQuery();
  11. System.out.println("host: "+ host);
  12. System.out.println("port: "+ port);
  13. System.out.println("uri_path: "+ uri_path);
  14. System.out.println("request_file: "+ request_file);
  15. System.out.println("query: "+ query);
  16. }
  17. }
复制代码

2.URLConnection

通过URL的openConnection()方法可以获取URLConnection对象,这个对象是面对这个URL的连接。

也就是说,这个对象其实是一个已连接套接字,它不仅具有解析http响应报文的功能,还具有套接字的相关功能(例如获取输入流、输出流等)。

仅就解析对象来说,URL对象解析的是URL地址,可以看作是解析http请求报文(如getPort(),getFile()等),而URLConnection则解析的是http响应报文(如getLastModified(),getHeaderFields()等)。

  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.net.MalformedURLException;
  4. import java.net.URL;
  5. import java.net.URLConnection;
  6. public class URLConnectionDemo {
  7. public static void main(String[] args) {
  8. try {
  9. URL url = new URL("https://www.baidu.com/");
  10. URLConnection urlc = url.openConnection();
  11. System.out.println(urlc.getURL()); //解析http响应报文
  12. InputStream is = urlc.getInputStream();
  13. byte[] buf = new byte[1024];
  14. int len = 0;
  15. while((len=is.read(buf))!=-1) {
  16. System.out.println(new String(buf,0,len));
  17. }
  18. } catch (MalformedURLException e1) {
  19. // TODO Auto-generated catch block
  20. e1.printStackTrace();
  21. } catch (IOException e) {
  22. // TODO Auto-generated catch block
  23. e.printStackTrace();
  24. }
  25. }
  26. }
复制代码

以上这篇基于java URL和URLConnection(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持程序员之家。



回复

使用道具 举报