1

使用過Android Studio 2.0獲取IOException,使用沒有錯誤信息的Android

沒有得到輸出使用內置URI瀏覽器的

Log.v(LOG_TAG, "Response Code" + urlConnection.getResponseCode()); 
Log.v(LOG_TAG, "Error Stream" + urlConnection.getErrorStream()); 
Log.v(LOG_TAG, "Request Method" + urlConnection.getRequestMethod());  

給了我正確的結果。

之前urlConnection.connect();調用getRequestMethod()給我方法名稱GET。

代碼

try { 
    // Construct the URL for the OpenWeatherMap query 
    // Possible parameters are avaiable at OWM's forecast API page, at 
    // http://openweathermap.org/API#forecast 
    final String FORECAST_BASE_URL = "http://api.openweathermap.org/data/2.5/forecast/daily?"; 
    final String QUERY_PARAM = "q"; 
    final String FORMAT_PARAM = "mode"; 
    final String UNITS_PARAM = "units"; 
    final String DAYS_PARAM = "cnt"; 
    final String APPID_PARAM = "APPID"; 

    Uri builtUri = Uri 
      .parse(FORECAST_BASE_URL) 
      .buildUpon() 
      .appendQueryParameter(QUERY_PARAM, params[0]) 
      .appendQueryParameter(FORMAT_PARAM, format) 
      .appendQueryParameter(UNITS_PARAM, units) 
      .appendQueryParameter(DAYS_PARAM, Integer.toString(numDays)) 
      .appendQueryParameter(APPID_PARAM, 
        BuildConfig.OPEN_WEATHER_MAP_API_KEY).build(); 

    URL url = new URL(builtUri.toString()); 

    Log.v(LOG_TAG, "Built URI " + builtUri.toString()); 

    // Create the request to OpenWeatherMap, and open the connection 
    urlConnection = (HttpURLConnection) url.openConnection(); 
    // urlConnection.setRequestMethod("GET"); 
    urlConnection.connect(); 
    Log.v(LOG_TAG, "Response Code" + urlConnection.getResponseCode()); 
    Log.v(LOG_TAG, "Error Stream" + urlConnection.getErrorStream()); 
    Log.v(LOG_TAG, "Request Method" + urlConnection.getRequestMethod()); 

    // Read the input stream into a String 
    // InputStream inputStream = urlConnection.getInputStream(); 
    InputStream inputStream; 
    if (urlConnection.getResponseCode() >= 400) { 
     inputStream = urlConnection.getErrorStream(); 
    } else { 
     inputStream = urlConnection.getInputStream(); 
    } 
    // Log.v(LOG_TAG, "Response Code" +urlConnection.getHeaderFields()); 

    StringBuffer buffer = new StringBuffer(); 
    if (inputStream == null) { 
     // Nothing to do. 
     return null; 
    } 
    reader = new BufferedReader(new InputStreamReader(inputStream)); 

    String line; 
    while ((line = reader.readLine()) != null) { 
     // Since it's JSON, adding a newline isn't necessary (it won't 
     // affect parsing) 
     // But it does make debugging a *lot* easier if you print out 
     // the completed 
     // buffer for debugging. 
     buffer.append(line + "\n"); 
    } 

    if (buffer.length() == 0) { 
     // Stream was empty. No point in parsing. 

     return null; 
    } 
    forecastJsonStr = buffer.toString(); 
    Log.v(LOG_TAG, "JSON Response " + forecastJsonStr); 
} catch (IOException e) { 
    Log.e(LOG_TAG, "Error", e); 
    // If the code didn't successfully get the weather data, there's no 
    // point in attemping 
    // to parse it. 
    return null; 
} finally { 
    if (urlConnection != null) { 
     urlConnection.disconnect(); 
    } 
    if (reader != null) { 
     try { 
      reader.close(); 
     } catch (final IOException e) { 
      Log.e(LOG_TAG, "Error closing stream", e); 
     } 
    } 
} 

錯誤日誌

04-22 18:42:16.444 9011-9011/com.android.serverwarrior.sunshine E/ViewRootImpl:sendUserActionEvent()MVIEW == null

04-22 18:42:17.405 9011-9314/com.android.serverwarrior.sunshine E/FetchWeatherTask:Error

+0

是不是用這條線吞下異常? Log.e(LOG_TAG,「Error」,e);如果您設置了正確的過濾器,則 – raven

+0

錯誤消息始終在logcat中。必須有更多... – Opiatefuchs

+0

@Opiatefuchs我沒有在logcat上使用任何過濾器。 –

回答

0

不知道,但我把手機連接到無線網絡,並再次發送請求,我得到了JSON resposne。

我確認了它,沒有網絡連接,我沒有得到輸出。

關於

04-22 18:42:16.444 9011-9011/com.android.serverwarrior.sunshine E/ViewRootImpl:sendUserActionEvent()MVIEW == NULL

這是因爲三星設備,我從其他帖子得到這個錯誤。所以這部分可以忽略。

+0

是...三星設備....我也有一些問題與三星Galaxy S3 ...它有他自己的生活,並試圖惹惱你..... – Opiatefuchs

+0

@Opiatefuchs這是非常糟糕的知道,問題並不新鮮但仍未解決。 –

+0

@Opiatefuchs嘗試以管理員身份運行Android Studio,速度比平時快,這是我在此期間注意到的事情,因爲我花了將近6小時。 –

相關問題