После того, как я ознакомился с учебным пособием, я смог получить некоторые данные из twitter для моего приложения для Android. Следующий код работает. Я просто хочу создать приложение, которое может извлекать данные, такие как уровень символов Diablo 3. Как мне это сделать? Я думаю, что мне нужно использовать этот URL для извлечения данных http://us.battle.net/api/d3/profile/Fauntleroy-1134/, но мне не повезло.Как получить API для работы?
public class HttpExample extends Activity {
TextView httpStuff;
HttpClient client;
JSONObject json;
final static String URL = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.httpex);
httpStuff = (TextView) findViewById(R.id.tvHttp);
client = new DefaultHttpClient();
new Read().execute("created_at");
}
public JSONObject lastTweet(String username) throws ClientProtocolException, IOException, JSONException{
StringBuilder url = new StringBuilder(URL);
url.append(username);
HttpGet get = new HttpGet(url.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();
if (status == 200){
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONArray timeline = new JSONArray(data);
JSONObject last = timeline.getJSONObject(0);
return last;
}else{
Toast.makeText(HttpExample.this, "error", Toast.LENGTH_SHORT);
return null;
}
}
public class Read extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
try{
json = lastTweet("");
return json.getString(params[0]);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
httpStuff.setText(result);
}
}
}
чем проблема, извлечение JSON строки или разбора его? – lelloman
В LogCat в Eclipse я получаю несколько тегов System.err, я также вижу всю информацию из URL-адреса, из которого я хочу получить данные. Я решил, что если бы я изменил значение, хранящееся в «окончательном статическом URL String», и изменил строку, которая передается функции read(), приложение по существу продолжит работу. Это будет просто получение различной информации. – user2065502