gpt4 book ai didi

java - 从一个链接而不是另一个链接抓取 JSON

转载 作者:行者123 更新时间:2023-11-29 05:39:58 26 4
gpt4 key购买 nike

我正在使用相同的代码从两个链接中获取一个简单的 JSON。我分别做了两次,所以我的问题的原因不是因为他们遇到彼此或其他什么。

这是我的代码:

@Override
protected String doInBackground(Object... params) {
try {
URL weatherUrl = new URL("my url goes here");
HttpURLConnection connection = (HttpURLConnection) weatherUrl
.openConnection();
connection.connect();

responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
Reader reader = new InputStreamReader(inputStream);
int contentLength = connection.getContentLength();
char[] charArray = new char[contentLength];
reader.read(charArray);
String responseData = new String(charArray);
Log.v("test", responseData);

当我尝试这样做时:

http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full?alt=json

我得到一个数组长度为 -1 的错误

对于这个链接:

http://api.openweathermap.org/data/2.5/weather?id=5815135

它返回正常,我得到了所有 JSON 的日志。有谁知道为什么?

注意:我尝试在 Debug模式下单步执行我的代码,但我无法捕捉到任何东西。我还下载了一个用于在浏览器中解析 json 的谷歌 chrome 扩展,两个 url 看起来完全有效。我没主意了。

最佳答案

记录这个:int contentLength = connection.getContentLength();

我没有看到返回 content-length header 的 google url。

如果你只想从 url 输出字符串,你可以像这样使用 ScannerURL:

Scanner s = new Scanner(new URL("http://www.google.com").openStream(), "UTF-8").useDelimiter("\\A");
out = s.next();
s.close();

(不要忘记 try/finally block 和异常处理)

较长的方式(允许进度报告等):

String convertStreamToString(InputStream is) throws UnsupportedEncodingException {

BufferedReader reader = new BufferedReader(new
InputStreamReader(is, "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null)
sb.append(line + "\n");
} catch (IOException e) {
// Handle exception
} finally {
try {
is.close();
} catch (IOException e) {
// Handle exception
}
}
return sb.toString();
}
}

然后调用 String response = convertStreamToString( inputStream );

关于java - 从一个链接而不是另一个链接抓取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982851/

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