gpt4 book ai didi

android - Android 的 JSON 获取 URL 内容

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:51 25 4
gpt4 key购买 nike

friend 们, 我在给定 http://samplejson.com/transactions.json 的 url 中直接解析 json 内容时遇到问题,但是当我在我的 res/raw 文件夹中存储与文本文件相同的 url 内容时,它也会解析数据,但是当从 net 中获取 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,包括 header 。这就是为什么你的不以“[”开头的原因。

这是我用来取回 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...
}
}

关于android - Android 的 JSON 获取 URL 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4723964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com