EntityUtils.toString 无法解密程序发过来的URLENCODE

void_main_void 2015-11-25 09:31:07

HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://XXX.XXX.com:8080/XXX/XXX/XXX");

try
{
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200)
{
HttpEntity entity = response.getEntity();
String str = EntityUtils.toString(entity, "UTF-8");

Log.d("XX", str);
}
}


确认服务器返回的数据为TUF-8,但是我这里写代码str结果为未解密的URLENCODE。 并且我手动复制STR的内容到站长工具解密可以解出正确的数据。这是为何??
%5B%7B%22id%22%3A%221%22%2C%22skillname%22%3A%22%E6%B5%8B%E8%AF%95%E7%89%B9%E9%95%BF%22%2C%22sortid%22%3A1%2C%22active%22%3A0%7D%2C%7B%22id%22%3A%223%22%2C%22skillname%22%3A%22%E5%A4%9A%E4%B8%AA%E7%89%B9%E9%95%BF%22%2C%22sortid%22%3A9%2C%22active%22%3A0%7D%5D

android最小编译 4.0.3 。
...全文
195 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklwan 2015-11-26
  • 打赏
  • 举报
回复
因为返回的数据是经过编码的,需要解码,使用URLEncoder.encode来解码 String str = URLEncoder.encode(EntityUtils.toString(entity, "UTF-8"),"UTF-8");
jklwan 2015-11-26
  • 打赏
  • 举报
回复
引用 3 楼 void_main_void 的回复:
你给错了。应该是URLDecoder.decode
嗯,对的,我给的是URL编码,不是解码。
void_main_void 2015-11-26
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
因为返回的数据是经过编码的,需要解码,使用URLEncoder.encode来解码 String str = URLEncoder.encode(EntityUtils.toString(entity, "UTF-8"),"UTF-8");
你给错了。应该是URLDecoder.decode
void_main_void 2015-11-26
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
因为返回的数据是经过编码的,需要解码,使用URLEncoder.encode来解码 String str = URLEncoder.encode(EntityUtils.toString(entity, "UTF-8"),"UTF-8");
为何用了你给的答案。str得到的结果为再次对原本没有解密的字符串进行urlencode加密?。。。。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧