2017-04-03 168 views
1

我流汗了一個問題:服務器返回的HTTP響應代碼:400 Facebook的

錯誤:服務器返回的HTTP響應代碼:400網址

網址:https://graph.facebook.com/me?fields=id%2Cname%2Cemail%2Cgender& =的access_token XXXXXXXXXXXXXXXXXXX

以下是我的代碼:

public String getFBGraph() { 
    String graph = null; 

    try { 

     String g ="https://graph.facebook.com/me?fields=id%2Cname%2Cemail%2Cgender&"+accessToken; 


     URL u=new URL(g); 
     URLConnection c=u.openConnection(); 


     BufferedReader in=new BufferedReader(new InputStreamReader(c.getInputStream())); 
     String inputLine; 

     StringBuffer b=new StringBuffer(); 
     while ((inputLine=in.readLine())!=null) 
      b.append(inputLine+"\n"); 
     in.close(); 
     graph=b.toString(); 
     //System.out.println(graph); 
    } catch (Exception e) { 
     e.printStackTrace(); 

     throw new RuntimeException("ERROR in getting FB graph data. "+e); 
    } 
    return graph; 

} 

我從調用方法運行它時收到錯誤,並且當我將粘貼相同的URL複製到瀏覽器獲取輸出時,請幫助我,我的accesstocken是完美的,是什麼問題?

回答

0

則很可能只是忘了access_token=參數名稱添加到您的URL字符串:

String g ="https://graph.facebook.com/me?fields=id%2Cname%2Cemail%2Cgender&"+accessToken

Facebook將與HTTP狀態代碼400響應,在這種情況下:

10.4。 1 400錯誤請求 由於格式錯誤,服務器無法理解請求。客戶端不應該在沒有修改的情況下重複請求。

,並會說沿着

線的東西「一個積極的訪問令牌必須用於查詢當前用戶的信息。」

在響應正文中。

+0

沒有先生我添加了我的accesstocken,但顯示我一樣... –

+0

@HareshPrajapati你有沒有試過用'System.out.println(g)'輸出生成的URL並在瀏覽器中打開它?查看完整響應主體(針對400錯誤)也是很好的,因爲它通常會提供有關請求錯誤的一些詳細信息。 – zeppelin

相關問題