一个url返回json格式数据的时候,指定了UTF-8
response.setContentType("application/json; charset=UTF-8");
但是只返回一个字符串,比如2.1
这时用httpclient去请求url获取结果的时候利用下面代码获取结果
String version = EntityUtils.toString(entity, Consts.UTF_8);
这个获取到的version前面是存在一个空字符的(%EF%BB%BF),拷贝到UltraEditor中可以看到2.1前面有个?,拷贝到浏览器地址栏就可以看到这个空字符(%EF%BB%BF)
这个空字符是UTF-8的BOM头
解决办法之一是在url中返回标准的json格式,比如用HashMap包装一下
Map<String, String> version = new HashMap<String, String>();
version.put("version", "2.01");
return context.toJsonResult(JSON.toJSONString(version));
然后在请求时再解析
String entityStr = EntityUtils.toString(entity, Consts.UTF_8);
String version = JSON.parseObject(entityStr,
new TypeReference<Map<String, String>>(){}).get("version");
这样获取到的字符串是没有前面的空字符的
分享到:
相关推荐
String responseContent = EntityUtils.toString(entity, StandardCharsets.UTF_8); // 处理响应内容 } ``` 7. **关闭资源**:确保在完成操作后关闭HttpClient和HttpEntity,以释放资源: ```java ...
下载HttpClient,解压,在Eclipse中导入所有JAR import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.... ... ...import org.apache.http.util.EntityUtils;
- 使用`EntityUtils.toString()`将响应体转换成字符串。 #### POST请求示例 POST请求通常用于向服务器发送数据。下面是一个使用HttpClient发送POST请求的例子: ```java import org.apache.http.HttpResponse; ...
String responseBody = EntityUtils.toString(response.getEntity()); System.out.println("GET Response: " + responseBody); // HTTP POST请求 HttpPost httpPost = new HttpPost("http://example.com"); ...
String result = EntityUtils.toString(httpResponse.getEntity());//获得资源 result = result.replaceAll("\r\n|\n\r|\r|\n", "");//去掉信息中的回车和换行 EditText etGet = (EditText)findViewById...
System.out.println(EntityUtils.toString(entity)); } EntityUtils.consume(entity); } finally { response.close(); } httpClient.close(); } } ``` 在这个示例中,我们首先创建了一个`...
String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8"); System.out.println("响应状态码:" + response.getStatusLine().getStatusCode()); System.out.println("响应内容:" + ...
`EntityUtils.toString()`方法可以将`HttpEntity`内容转化为字符串,指定字符编码避免乱码问题。 ```java String s = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println(s); ``` 最后,别...
如果请求成功(状态码为200),则通过`EntityUtils.toString()`方法读取响应实体的内容,并将其转换为JSON对象。 #### 五、错误处理 对于可能出现的各种异常情况,如网络连接失败、解析响应内容时出现错误等,我们...
String responseBody = EntityUtils.toString(entity, encoding); ``` 3. 使用EntityUtils处理乱码:EntityUtils提供了一些方法来处理HTTP实体,如`toString()`方法,它可以自动处理字符编码。确保传递正确的字符...
Fastjson是阿里巴巴提供的一个高性能的JSON库,可以方便地将Java对象转换为JSON字符串,反之亦然。 ### 1. 发送JSON数据的POST请求 当需要发送JSON格式的数据时,通常会使用`StringEntity`。首先,创建一个`...
测试环境为Adnroid 2.1以上。 1.AndroidManifest.xml 权限配置: 添加互联网访问权限: 代码如下: ”android.permission.INTERNET”> 2.异步图片类 ImageDownloadTask 代码如下: import java.io....
如果期望返回的是JSON数据,可以使用`EntityUtils.toString()`方法转换成字符串,再通过JSON库如Jackson或Gson解析: ```java String responseBody = EntityUtils.toString(response.getEntity()); ObjectMapper ...
在上述代码中,`EntityUtils.consume(response.getEntity())`会自动处理内容的解码,但如果你需要手动处理,可以使用`EntityUtils.toString(entity, "UTF-8")`。 此外,对于服务器端的设置也非常重要,确保服务器...
System.out.println("Response Body: " + EntityUtils.toString(response.getEntity())); } } } ``` #### 五、高级用法 `Httpclient`提供了许多高级功能,如自定义请求配置、异常处理、连接管理等。以下是一些...
例如,使用`getStatusLine()`获取状态码,`getAllHeaders()`获取所有头部,`EntityUtils.toString(entity)`获取实体内容。 ### POST请求 POST请求常用于向服务器提交数据。使用HttpClient进行POST请求的步骤类似,...
在Android开发中,字符编码是一个重要的考虑因素,尤其是在处理中文字符时。GBK是GB2312编码的一个扩展,主要用于简体中文,而Unicode是一种通用的字符编码标准,支持全球多种语言,包括简体和繁体中文。在Android...
System.out.println(EntityUtils.toString(responseEntity, "UTF-8")); } EntityUtils.consume(responseEntity); } finally { response.close(); httpClient.close(); } ``` 通过`getStatusLine()`获取HTTP...
使用EntityUtils可以将这个数据转换成字符串: ```java HttpEntity entity = response.getEntity(); String htmlSource = EntityUtils.toString(entity, "GBK"); ``` 这里注意使用了"GBK"作为字符编码,因为项目...
return EntityUtils.toString(entity, "UTF-8"); } else { throw new IOException("GET请求失败,状态码:" + status); } } // POST请求 public static String sendPostRequest(String url, List...