究竟是什么返回EntityUtils.toString(响应)?

时间:2015-06-04 11:06:50

标签: android apache rest entity

我正在进行我的API REST,我发现在很多示例中,人们使用EntityUtils.toString(response)responseString GET POST转移到PUT {1}},DELETEHttpGet method = new HttpGet(url); method.setHeader("content-type", "application/json"); HttpResponse response = httpClient.execute(method); String responseString = EntityUtils.toString(response.getEntity()); 方法。与此类似:

String

请避免向我说出这些给我带来帮助的答案

我知道它返回给我String一个实体的内容(在这种情况下是响应)但是这里是我怀疑的地方,因为我对这个{{1}不安全}返回。我在官方文档中看到了它。

  

读取实体的内容并将其作为String返回。

https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/util/EntityUtils.html#toString(org.apache.http.HttpEntity,java.lang.String)

content-type中返回的String是什么?

相反,我使用我的方法得到的String中返回的值是什么?

我认为这是第二个问题,但我对此并不安全。并且,如果确实如此,这些值如何存储到String?他们被昏迷或某些特殊人物分开了吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

HttpEntity表示HTTP响应正文的内容。 EntityUtils.toString(HttpEntity)将该内容解释为String并将其返回给您。

如果您的HTTP响应是这样的

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 80

<?xml version="1.0" encoding="utf-8"?>
<root>
    <nested attr="whatever" />
</root>

然后String返回的EntityUtils.toString(HttpEntity)将只包含

<?xml version="1.0" encoding="utf-8"?>
<root>
    <nested attr="whatever" />
</root>

答案 1 :(得分:1)

请注意EntityUtils.toString的默认字符集:

  

使用提供的默认值将实体内容作为String获取   字符集,如果在实体中找不到。如果是defaultCharset   null,使用默认的“ISO-8859-1”。

org.apache.http.util.EntityUtils.toString(response.getEntity, "UTF-8");