2015-06-10 65 views
0

調試它保持在行try語句失敗時,我試圖從網頁讀取JSON並將其存儲爲一個字符串,但是閱讀內容新的InputStreamReader(inputStream,「UTF-8」));從URL失敗

public String networkRequest() throws IOException { 

    URL url = new URL("https://graph.facebook.com/me"); 

    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

    try 
    { 
     InputStream inputStream = url.openStream(); 
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); 
     StringBuilder stringBuilder = new StringBuilder(); 
     int cp; 
     while ((cp = bufferedReader.read()) != -1) 
     { 
      stringBuilder.append((char) cp); 
     } 

     return stringBuilder.toString(); 
    } 
    catch(Exception ex) 
    { 
     return "nothing"; 
    } 
} 

在其因爲故障的到達捕獲並返回「無」,沒有人明白我做錯了嗎?

BTW:我的網絡非常好!

+0

在catch塊中記錄異常。通過執行'Log.d(「TAG」,ex +「」);'然後在Logcat中查看異常情況。 –

+0

你是從UI線程執行這個方法嗎?請在此處發佈您的例外以獲得進一步幫助 – 7383

+0

@BidhanA所以我得到這個異常,android.os.NetworkOnMainThreadException – Gusinator

回答

0

太好了。這意味着你正在從UI線程執行這個方法,這是不推薦的,android嚴格模式不會允許這樣做。因此有一個例外。請從後臺線程執行該方法。

+0

當你說'後臺線程',我可以問你是什麼意思?由於此方法位於由演示者中的方法調用的類中(遵循MVP設計模式) – Gusinator

+0

您應該創建一個新的Java線程或可運行對象並執行此方法。 – 7383

+0

你能帶我到正確的教程嗎?我不明白你在說什麼 – Gusinator