`
utopialxw
  • 浏览: 369820 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EntityUtils.toString时前面多一个空字符%EF%BB%BF

    博客分类:
  • java
阅读更多
一个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");

这样获取到的字符串是没有前面的空字符的



分享到:
评论

相关推荐

    Java httpclient的一个小例子,没有服务器端下载请慎重

    String responseContent = EntityUtils.toString(entity, StandardCharsets.UTF_8); // 处理响应内容 } ``` 7. **关闭资源**:确保在完成操作后关闭HttpClient和HttpEntity,以释放资源: ```java ...

    org.apache.http jar包

    下载HttpClient,解压,在Eclipse中导入所有JAR import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.... ... ...import org.apache.http.util.EntityUtils;

    采用 HttpClient GET、POST 方式 提交数据到服务器

    - 使用`EntityUtils.toString()`将响应体转换成字符串。 #### POST请求示例 POST请求通常用于向服务器发送数据。下面是一个使用HttpClient发送POST请求的例子: ```java import org.apache.http.HttpResponse; ...

    httppost和httpget需要的jar包

    String responseBody = EntityUtils.toString(response.getEntity()); System.out.println("GET Response: " + responseBody); // HTTP POST请求 HttpPost httpPost = new HttpPost("http://example.com"); ...

    Android 创建HttpPost对象 获取HTTP连接.rar

      String result = EntityUtils.toString(httpResponse.getEntity());//获得资源   result = result.replaceAll("\r\n|\n\r|\r|\n", "");//去掉信息中的回车和换行   EditText etGet = (EditText)findViewById...

    httpclient发送get请求和post请求demo

    System.out.println(EntityUtils.toString(entity)); } EntityUtils.consume(entity); } finally { response.close(); } httpClient.close(); } } ``` 在这个示例中,我们首先创建了一个`...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8"); System.out.println("响应状态码:" + response.getStatusLine().getStatusCode()); System.out.println("响应内容:" + ...

    httpclient发送post请求.docx

    `EntityUtils.toString()`方法可以将`HttpEntity`内容转化为字符串,指定字符编码避免乱码问题。 ```java String s = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println(s); ``` 最后,别...

    JAVA发送HttpClient请求及接收请求结果过程

    如果请求成功(状态码为200),则通过`EntityUtils.toString()`方法读取响应实体的内容,并将其转换为JSON对象。 #### 五、错误处理 对于可能出现的各种异常情况,如网络连接失败、解析响应内容时出现错误等,我们...

    HttpClient、乱码解决:实例

    String responseBody = EntityUtils.toString(entity, encoding); ``` 3. 使用EntityUtils处理乱码:EntityUtils提供了一些方法来处理HTTP实体,如`toString()`方法,它可以自动处理字符编码。确保传递正确的字符...

    HttpClient发送json、普通参数类型的Post请求(csdn)————程序.pdf

    Fastjson是阿里巴巴提供的一个高性能的JSON库,可以方便地将Java对象转换为JSON字符串,反之亦然。 ### 1. 发送JSON数据的POST请求 当需要发送JSON格式的数据时,通常会使用`StringEntity`。首先,创建一个`...

    Android 异步获取网络图片并处理导致内存溢出问题解决方法

    测试环境为Adnroid 2.1以上。 1.AndroidManifest.xml 权限配置: 添加互联网访问权限: 代码如下: ”android.permission.INTERNET”&gt; 2.异步图片类 ImageDownloadTask 代码如下: import java.io....

    Httpclient 簡單測試程式

    如果期望返回的是JSON数据,可以使用`EntityUtils.toString()`方法转换成字符串,再通过JSON库如Jackson或Gson解析: ```java String responseBody = EntityUtils.toString(response.getEntity()); ObjectMapper ...

    httpclient 上传文件

    在上述代码中,`EntityUtils.consume(response.getEntity())`会自动处理内容的解码,但如果你需要手动处理,可以使用`EntityUtils.toString(entity, "UTF-8")`。 此外,对于服务器端的设置也非常重要,确保服务器...

    Httpclient教程

    System.out.println("Response Body: " + EntityUtils.toString(response.getEntity())); } } } ``` #### 五、高级用法 `Httpclient`提供了许多高级功能,如自定义请求配置、异常处理、连接管理等。以下是一些...

    HttpClient请求之基础

    例如,使用`getStatusLine()`获取状态码,`getAllHeaders()`获取所有头部,`EntityUtils.toString(entity)`获取实体内容。 ### POST请求 POST请求常用于向服务器提交数据。使用HttpClient进行POST请求的步骤类似,...

    android GBK转换为String

    在Android开发中,字符编码是一个重要的考虑因素,尤其是在处理中文字符时。GBK是GB2312编码的一个扩展,主要用于简体中文,而Unicode是一种通用的字符编码标准,支持全球多种语言,包括简体和繁体中文。在Android...

    httpclient.post例子

    System.out.println(EntityUtils.toString(responseEntity, "UTF-8")); } EntityUtils.consume(responseEntity); } finally { response.close(); httpClient.close(); } ``` 通过`getStatusLine()`获取HTTP...

    使用HttpClient获取网页html源代码.zip

    使用EntityUtils可以将这个数据转换成字符串: ```java HttpEntity entity = response.getEntity(); String htmlSource = EntityUtils.toString(entity, "GBK"); ``` 这里注意使用了"GBK"作为字符编码,因为项目...

    Android-HttpClient工具类简单轻松的实现getpostput和delete请求

    return EntityUtils.toString(entity, "UTF-8"); } else { throw new IOException("GET请求失败,状态码:" + status); } } // POST请求 public static String sendPostRequest(String url, List...

Global site tag (gtag.js) - Google Analytics