android 我用httpurlconnection get方法 从服务器获取了一个json 可是打印出来是一段乱码 代码如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 我用httpurlconnection get方法 从服务器获取了一个json 可是打印出来是一段乱码 代码如下相关的知识,希望对你有一定的参考价值。

要怎么改才能不出现乱码

1、让服务器设置一下编码格式,tomcat有个设置编码格式的

2、接收后  转码  例如new String(old.getBytes("gbk"),"utf-8");具体看你接收到的是什么格式

3、设置studio的编码格式  最好所有统一  u8格式

参考技术A Map<String, List<String>> map = conn.getHeaderFields();
for (String key : map.keySet())
System.out.println(key + "--->" + map.get(key));

遍历下服务器的响应头信息,找到编码,看下编码格式。

然后创建InputStreamReader这样创建:
InputStreamReader inputStreamReader =new InputStreamReader(connection.getInputStream(),"编码格式")
试试看能不能解决本回答被提问者采纳

在 Android 中处理 Http 304 响应

【中文标题】在 Android 中处理 Http 304 响应【英文标题】:Handling Http 304 Response In Android 【发布时间】:2015-05-19 22:57:24 【问题描述】:

我使用HttpURLConnection 与服务器通信并使用HttpResponseCache 进行缓存,当服务器以304 (HTTP_NOT_MODIFIED) 响应时,我得到了空的正文,但根据 HttpURLConnection 和 HttpResponseCache 的文档,以防 304 HttpUrlConnection将在缓存中获取相同 URL 的响应。虽然对 url 的请求被缓存并且我确认了它。当第一次调用 url 时我得到正确的响应(数据),而当我调用 url 时缓存后,为什么我得到空的正文(没有数据)。

【问题讨论】:

你是在实例化这个HttpResponseCache吗?还是使用默认值? 我在应用程序开始时创建缓存参考是这个链接developer.android.com/reference/android/net/http/… 我可以看看你正在做的第二个请求吗? @kashif181 我们也遇到了同样的问题。你是怎么解决这个问题的?你能帮帮我吗? 【参考方案1】:

我通过从官方谷歌代码库下载 volley 库解决了这个问题,这是链接 https://android.googlesource.com/platform/frameworks/volley/+/master.

实际上 github 上的 volley 源代码是定制的,会导致很多问题(github 链接:https://github.com/mcxiaoke/android-volley),千万不要从该链接下载。

【讨论】:

以上是关于android 我用httpurlconnection get方法 从服务器获取了一个json 可是打印出来是一段乱码 代码如下的主要内容,如果未能解决你的问题,请参考以下文章

json协议

android怎么设置单个控件占屏幕的一半,我用

为什么我用AsyncTask获取android.os.NetworkOnMainThreadException?

我用Xamarin开发android应用,应用在模拟器上一打开就退出了

安卓开发:SmartImageView简单实现和应用

接近警报不起作用,我用 google maps api v2 制作了一个简单的 android 应用程序