我怀疑与网络服务和Json有关。实际上我有一个URL http://api.icndb.com/jokes/random,它与一些笑话网站有关。
如果您点击上面给出的网址,您就可以看到json数据。现在我的问题是我正在尝试做一个应用程序,即在我的活动中我有一个按钮和文本视图。
如果我们点击按钮,它应该从上面给出的网站上获取笑话,它应该以文本视图显示。每次如果我点击按钮,它应该显示不同的笑话。
是否可以帮助我使用上面提到的网址来获取数据。
答案 0 :(得分:-1)
我把这里放在代码中。你需要使用AsyncTask。
public static String getJSONFromUrl(String url) {
// make HTTP request
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
Log.e("Log","Url1="+url);
json = sb.toString();
} catch (Exception e) {
Log.e(TAG, "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e(TAG, "Error parsing data " + e.toString());
}
// return JSON String
return json;
}
获取Result后,解析它。
答案 1 :(得分:-1)
如果您的问题是如何检索数据,您应该看看这个解决方案: How to get JSON from URL in Javascript?
如果您在同一会话中调用相同的URL,它将缓存结果。
你只需在网址上添加一个虚假的参数,以强制不要对该请求进行操作。
例如,您可以将getTime添加到网址。var d = new Date();
var n = d.getTime();
var url = "http://api.icndb.com/jokes/random?n=" + n;
例如: http://api.icndb.com/jokes/random?n=1468578025752 http://api.icndb.com/jokes/random?n=819929720000