【发布时间】:2011-07-06 16:59:49
【问题描述】:
我对 Android 和 Java 的世界还很陌生,我想知道如何从这里的 web api http://www.imdbapi.com/ 获取数据到 android。 我应该使用 JSON 还是 XML? 步骤是什么?首先我想知道如何下载数据,然后如何将其解析为变量。 有示例代码吗?
【问题讨论】:
我对 Android 和 Java 的世界还很陌生,我想知道如何从这里的 web api http://www.imdbapi.com/ 获取数据到 android。 我应该使用 JSON 还是 XML? 步骤是什么?首先我想知道如何下载数据,然后如何将其解析为变量。 有示例代码吗?
【问题讨论】:
HttpClient httpclient = new DefaultHttpClient();
// Prepare a request object
HttpGet httpget = new HttpGet(url);
// Execute the request
HttpResponse response;
JSONArray arr = new JSONArray();
try {
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null && response.getStatusLine().getStatusCode() == 200) {
// A Simple JSON Response Read
InputStream instream = entity.getContent();
String result = convertStreamToString(instream);
arr=new JSONArray(result);
instream.close();
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
Log.e(TAG,e.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e(TAG,e.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
Log.e(TAG,e.toString());
}
return arr;
public static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
Log.e(TAG + "ERROR",e.toString());
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG + "ERRO",e.toString());
}
}
return sb.toString();
}
至于解析,给你:http://developer.android.com/reference/org/json/package-summary.html
顺便说一句,这在谷歌上很容易找到:)
【讨论】:
'TAG' has private access in 'android.support.v4.app.Fragment'