HttpURLConnection connect(),getInputStream(),getContent(),HttpGet

时间:2017-08-05 08:15:57

标签: java android networking httpurlconnection http-get

我使用类HttpURLConnection,但我混淆了一些方法

假设HttpURLConnection对象名称为" c"

  1. 删除c.connect()会导致连接成功,并且会毫无问题地检索连接结果

  2. c.getInputStream()和(InputStream)的输出c.grtContent()是相同的,所以它们之间的区别是什么

  3. 使用HttpGet的
  4. 将达到与HttpURLConnection相同的方法,因此这两种方法有什么区别

  5. 对URLConnection上的HttpURLConnection有什么额外好处

    c =(HttpURLConnection)(URL).openConnection(); c.connect(); //添加或删除会产生相同的结果,因此该方法的用法是什么 InputStream stream = c.getInputStream(); InputStream stream2 =(InputStream)c.getContent(); // stream和stream2是相同的,所以getInputStream()和getContent()之间的区别是什么

    // ============================

    HttpGet c = new HttpGet(url); HttpResponse response = c.execute(httpGet) InputStream stream3 = response.getEntity()。getContent(); // stream3与stream&相同stream2;那么HttpGet& HttpURLConnection类

1 个答案:

答案 0 :(得分:1)

来自Android文档:

  

[HttpURLConnection是] URLConnection,支持HTTP特定功能。

例如,从HttpURLConnection,您可以检索特定于HTTP的HTTP方法或HTTP状态代码。

URLConnection类是:

  

抽象类URLConnection是表示应用程序和URL之间的通信链接的所有类的超类

正常用法是:

  1. 创建URL对象
  2. 致电URLConnection获取url.openConnection()。返回的对象可以转换为HttpURLConnection
  3. 通过调用InputStream方法
  4. 获取connection.getInputStream()
  5. 关闭连接(disconnect()方法)(参见@EJP评论)
  6. 关于connect()方法,来自Oracle文档:

      

    您并不总是需要显式调用connect方法来启动连接。依赖于连接的操作(如getInputStreamgetOutputStream等)将在必要时隐式执行连接。

    HttpGetHttpURLConnection之间的区别在于它们属于2个不同的库,但在功能上它们或多或少相同(现在HttpGet已被弃用和删除,所以你不会在标准的Android API中找到它)