Android: как вытащить данные с веб-сайта и перенаправить на просмотр списка
Я пытаюсь создать приложение, которое извлекает данные с Wunderground.com и передает данные в приложение для Android с помощью ListView. Мой партнер и я успешно запустили ListView для работы, однако потоковая передача данных из Wunderground вызывает некоторые проблемы.
Странно то, что если я извлекаю код, который получает данные, и вставляю его в затмение, это работает (время от времени). Я искал в Интернете решения, но не могу найти ничего, что работает. Мы пытаемся получить следующие данные о погоде: влажность, температура, состояние, дата и время, а также изображение, связанное с данными.
Ниже приведен код:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
String sURL = "http://freegeoip.net/json/";
URL url = new URL(sURL);//Create a URL object
//Connect to the website with the url variable
HttpURLConnection request = (HttpURLConnection) url.openConnection();
request.connect();
JsonParser jp = new JsonParser();//Create an object from the JsonParser class
JsonElement root = jp.parse(new BufferedReader(new InputStreamReader((InputStream) request.getContent())));
JsonObject rootobj = root.getAsJsonObject();//create an object for the element
String ZipCode = rootobj.get("zip_code").getAsString();
//Create a string for the web address with the key
String sURL1 = "http://api.wunderground.com/api/1e404159ad02dddd/conditions/hourly/q/" + ZipCode + ".json";
URL url1 = new URL(sURL1);//Create a URL object
//Connect to the website with the url variable
HttpURLConnection request1 = (HttpURLConnection) url1.openConnection();
request1.connect();
JsonParser jp1 = new JsonParser();//Create an object from the JsonParser class
JsonElement root1 = jp1.parse(new InputStreamReader((InputStream) request1.getContent()));
JsonObject rootobj1 = root1.getAsJsonObject();//create an object for the element
JsonArray printArray = rootobj1.get("hourly_forecast").getAsJsonArray();
//Add all Wunderground data to the List
for(int i = 0; i < printArray.size(); i++)
{
String dateTime = rootobj1.get("hourly_forecast").getAsJsonArray().get(i).getAsJsonObject().get("FCTTIME").getAsJsonObject().get("pretty").getAsString();
String condition = rootobj1.get("hourly_forecast").getAsJsonArray().get(i).getAsJsonObject().get("condition").getAsString();
String temp = rootobj1.get("hourly_forecast").getAsJsonArray().get(i).getAsJsonObject().get("temp").getAsJsonObject().get("english").getAsString();
String humidity = rootobj1.get("hourly_forecast").getAsJsonArray().get(i).getAsJsonObject().get("humidity").getAsString();
String image = rootobj1.get("hourly_forecast").getAsJsonArray().get(i).getAsJsonObject().get("icon_url").getAsString();
itemName[i] = "The date is " + dateTime + ". It is " + condition + " outside. It is " + temp + " degrees outside. The humidity is at " + humidity + " percent.";
}
}
catch(Exception e)
{
e.printStackTrace();
}
Любая помощь приветствуется. Спасибо.