2014-06-17 55 views
0

我有一個Android應用程序,我嘗試從Facebook獲取信息。我使用http獲取請求,實際上在一個實例中運行得很好(當我嘗試獲取用戶共同朋友列表時)。Android中的java.net.UnknownHostException試圖訪問graph.facebook.com

但是,我試圖獲取用戶事件,出於某種原因,我得到了這個異常。有趣的是,這個URL很好用(在調試時在瀏覽器中測試過),並且如前所述 - 我在代碼的另一個地方使用相同的方法來獲取某些內容並且它可以正常工作。我完全失去它試圖找出什麼是錯的!

下面的代碼:

String accessToken = Session.getActiveSession().getAccessToken(); 
String query = "https://graph.facebook.com/me/events/attending?fields=id,name,location,venue,start_time,end_time,privacy&access_token=" + accessToken; 

HttpGet get = new HttpGet(query); 
HttpClient client = new DefaultHttpClient(); 

try { 
    HttpResponse response = client.execute(get); 
    String result = EntityUtils.toString(response.getEntity()); 

JSONObject eventsJsonObj = new JSONObject(result); 

JSONArray eventsArray = eventsJsonObj.getJSONArray("data"); 

for (int i=0; i < eventsArray.length(); i++) { 
    // do something with event 
} 

} catch (ClientProtocolException e) { 
    // TODO Auto-generated catch block 
e.printStackTrace(); 
} 

編輯:這裏的堆棧跟蹤和採取的調試和檢查瀏覽器(更換當然與[的access_token]訪問令牌)的URL。順便說一句,你可以自己嘗試的URL從圖形API資源管理器的訪問令牌

網址:https://graph.facebook.com/me/events/attending?fields=id,name,location,venue,start_time,end_time,privacy&access_token=[access_token]

06-17 15:07:17.684:W/System.err的(22733):java.net。 UnknownHostException 06-17 15:07:17.684:W/System.err(22733):at org.apache.http.impl.conn.DefaultClientConnectionOperator.getAllByName(DefaultClientConnectionOperator.java:272) 06-17 15:07:17.684 :W/System.err(22733):at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:153) 06-17 15:07:17.684:W/System.err(22733): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:167) 06-17 15:07:17.689:W/System.err(22733):at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125) 06-17 15:07:17.689:W /System.err(22733): at org.apache.http.impl.client.DefaultRequestDirector.executeOriginal(DefaultRequestDirector.java:1171) 06-17 15:07:17.689:W/System.err(22733):at org .apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:637) 06-17 15:07:17.689:W/System.err(22733):at org.apache.http.impl.client.AbstractHttpClient .execute(AbstractHttpClient.java:555) 06-17 15:07:17.689:W/System.err(22733):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 06-17 15:07:17.694:W/System.err(22733):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 06-17 15:07:17.694:W/System.err(22733):在

+0

嘗試記錄您的URL,然後在瀏覽器中嘗試該URL。它有效嗎?希望你已經在清單中聲明瞭互聯網許可。 –

+1

使用post方法insted get :) :) – Hardik

+0

嗨,謝謝。 @RaviBhatt - 試過了。有用。當然,我給了互聯網許可。 –

回答

0

經過對Eclipse的大量攻擊後,我終於找到了我犯的愚蠢(但合理)的錯誤。

我在主線程上調用了這個請求,這是大家都知道不該做的事情。所以這就是問題......如果有人遇到過。

Facebook取得請求。

相關問題