为什么我会得到一个400响应代码?(Why am I getting a 400 response

2019-10-18 20:43发布

我试图让使用中使用Java(restfb)Facebook的API的一些熟人。 我尝试了下面的代码。

public class FBJava {

    private String API_Key = "xxxxxx";
    private String API_Secret = "xxxxxxxx";

    public String firstReq = "https://graph.facebook.com/oauth/authorize?client_id="+API_Key+"&" +
            "redirect_uri=http://www.facebook.com/connect/login_success.html& scope=publish_stream,offline_access,create_event";
    public String secondReq = "https://graph.facebook.com/oauth/access_token?client_id="+API_Key+"" +
            "&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret="+API_Secret+"&code=";


    public static void main(String[] args) throws IOException {
        FBJava fb = new FBJava();

        System.out.println(fb.firstReq);
        URL request = new URL(fb.firstReq);

        HttpURLConnection conn = (HttpURLConnection) request.openConnection();
        conn.connect();

        int code = conn.getResponseCode();
        System.out.println(code);

    }
}

当我在浏览器中手动运行firstReq字符串,它被重定向我到正确的页面。 但是,当我检查响应代码我得到一个400,这意味着它的错误请求。 我想知道为什么,当我试图通过程序来运行它,它有不同的反应。 我知道我做错了什么,而是想知道什么是错误的,为什么它发生? 任何一种在这个问题上的洞察力,将不胜感激。

Answer 1:

有一个在错误firstReq URL。 它包含“&范围”之间的空白字符。 试试这个(我只是删除了空格):

  public String firstReq = "https://graph.facebook.com/oauth/authorize?client_id="+API_Key+"&" +
    "redirect_uri=http://www.facebook.com/connect/login_success.html&scope=publish_stream,offline_access,create_event";


文章来源: Why am I getting a 400 response code?