当我尝试发出请求时遇到此问题我没有收到任何错误,但它没有提出请求。为了测试它我添加了一个pritln System.out.println("DB daily Test 2");
但它没有显示。也许有人会发现我做错了什么?
JsonObjectRequest jorDaily = new JsonObjectRequest(Request.Method.GET, "http://api.openweathermap.org/data/2.5/forecast/daily?id=2965140&appid=eacc664602550623c7fe93a2732ad127" ,null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
ArrayList<WeatherCondition> weatherList = new ArrayList<WeatherCondition>();
System.out.println("DB daily Test 2");
// Trying to extract the imnformation from the JSON response
try {
JSONObject cityObj = response.getJSONObject("city");
JSONObject coordObj = response.getJSONObject("coord");
Coordinates coord = new Coordinates(coordObj.getString("lat"),coordObj.getString("lon"));
JSONArray list = response.getJSONArray("list");
com.example.tadas.betterweather4.City city = new com.example.tadas.betterweather4.City(cityObj.getString("id"),cityObj.getString("name"),cityObj.getString("country"),coord);
System.out.println("DB daily Test 3");
for (int i = 0; i < list.length(); i++) {
String date;
String time;
JSONObject childJSONObject = list.getJSONObject(i);
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getDefault());
calendar.setTimeInMillis(childJSONObject.getInt("dt") * 1000);
date = "" + calendar.get(Calendar.YEAR) + "/"+ calendar.get(Calendar.MONTH)+"/"+calendar.get(Calendar.DAY_OF_MONTH);
time = calendar.get(Calendar.HOUR_OF_DAY) + ":00";
JSONObject tempObj = childJSONObject.getJSONObject("temp");
JSONObject weatherObj = childJSONObject.getJSONObject("weather");
Wind wind = new Wind(childJSONObject.getString("deg"), childJSONObject.getString("speed"));
WeatherCondition w = new WeatherCondition(
weatherObj.getString("icon"),
childJSONObject.getString("humidity")+"%",
"",
weatherObj.getString("description"),
"",
childJSONObject.getString("clouds"),
tempObj.getString("temp_main"),
tempObj.getString("temp_max"),
date,
time,
city,
wind
);
w.setCurrent(tempObj.getString("temp"));
weatherList.add(w);
System.out.println("DB daily Test 4");
}
DBHelper db = DBHelper.getInstance(context);
for (WeatherCondition w: weatherList)
{
db.insertDaily(w);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("DB daily Test 00000000000000");
}
}
);
答案 0 :(得分:0)
您只是创建请求而不将其添加到队列中。 Volley.newRequestQueue(context).add(jorDaily);
请记住使用RequestQueue的静态实例并将其重用于所有请求的良好做法。