微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JSON获取Android的URL内容

朋友们,
  我在直接从给定http://samplejson.com/transactions.json的url解析json内容时遇到问题,但是当我将相同的url内容存储为我的res / raw文件夹中的文本文件时,它也解析数据,但是当从网络中获取url内容时它显示例外(即)
JSONArray文本必须以'[‘在…的字符1处开头

这里有什么问题.帮助我解决这个问题

URL url_net = new URL("http://samplejson.com/transactions.json"); 
InputStream is = url_net.openStream(); 
byte [] buffer = new byte[is.available()]; 
while (is.read(buffer) != -1); 
String jsontext = new String(buffer); 
JSONArray entries = new JSONArray(jsontext); 
x = "JSON parsed.\nThere are [" + entries.length() + "]\n\n"; 
int i; 
for (i=0;i<entries.length();i++) { }

解决方法:

好的,您的代码似乎正在读取包括标头在内的所有HTTP.这就是为什么你的不是以“[”开头的原因.

这是我用来获取HTTP GET的字符串内容代码

public static String getStringContent(String uri) throws Exception {

    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet();
        request.setURI(new URI(uri));
        HttpResponse response = client.execute(request);
        InputStream ips  = response.getEntity().getContent();
        BufferedReader buf = new BufferedReader(new InputStreamReader(ips,"UTF-8"));

        StringBuilder sb = new StringBuilder();
        String s;
        while(true )
        {
            s = buf.readLine();
            if(s==null || s.length()==0)
                break;
            sb.append(s);

        }
        buf.close();
        ips.close();
        return sb.toString();

        } 
    finally {
               // any cleanup code...
            }
        } 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐