2017-08-05 153 views
-2

我使用的类HttpURLConnection的,但荫混淆一些方法HttpURLConnection的连接(),的getInputStream(),的getContent(),HTTPGET

假设HttpURLConnection的对象名是 “c”

  1. 除去c.connect()将导致连接成功,并且它将检索连接结果而没有任何问题

  2. c.getInputStream()和(InputStream)c.grtContent()的输出是相同的,那么什么是在他们之间的差异

  3. 使用HTTPGET将达到相同的方法HttpURLConnection的,所以就是这两种方法

  4. 什么是对的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与streamstream2相同;因此如何剂量它不同

  5. 之间HTTPGET & HttpURLConnection的
+0

不要把你的问题放在代码注释中。把它放在可以看到的代码之外的英文句子里。 – EJP

+0

完成@EJP ...... –

回答

1

从Android文档:

[HttpURLConnection是一种URLConnection与HTTP特定功能的支持。

例如,从HttpURLConnection可以检索HTTP方法或HTTP状态码,它们是HTTP特定的。

URLConnection类,取而代之的,是:

抽象类URLConnection是表示应用程序和一个URL

的正常使用是之间的通信链路的所有类的超类:

  1. 创建URL对象
  2. 致电url.openConnection()获取URLConnection。返回的对象可以被铸造成HttpURLConnection
  3. 通过调用connection.getInputStream()方法
  4. 关闭连接( disconnect()法) (见@EJP评论)

关于connect()方法得到InputStream,从Oracle文档:

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

HttpGetHttpURLConnection之间的区别是,它们属于两个不同的库,但在功能上它们都或多或少相同(现为HttpGet已被弃用,删除,这样你就不会在标准找到它Android API)

+0

4.通过关闭输入流关闭连接。 disconnect()对连接池有影响,通常不会使用。 – EJP

+1

实际上,文档建议在完成阅读时断开连接。 “一旦读取响应主体,就应该通过调用disconnect()来关闭HttpURLConnection。”。你提到的东西听起来类似于旧版Android(2.2之前版本)中存在的错误:“在Android 2.2(Froyo)之前,这个类有一些令人沮丧的错误,特别是在可读的InputStream上调用close()连接池“ – user2340612

+1

该文档不符合Oracle文档,这使得它是错误的。 – EJP

相关问题