Java 400 错误但在浏览器中打开

标签 java facebook facebook-graph-api facebook-fql

我正在制作一个 facebook 软件,为此我需要进行 fql 查询来获取好友列表。我使用下面的代码

String url = "https://graph.facebook.com/fql?q=SELECT uid, name, pic_square FROM  user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 =     me())&access_token="+access;
    url = url.replace(" ", "%20");
    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    // optional default is GET
    con.setRequestMethod("POST");
    //add request header
    String USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36";
    con.setRequestProperty("User-Agent", USER_AGENT);
    int responseCode = con.getResponseCode();
    System.out.println(responseCode);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }

    in.close();

但我似乎总是收到 400 错误。我尝试用 %20 替换空格但没有效果。 当我在浏览器中打开链接时,它打开得很好。

最佳答案

我感到羞愧。解决方案实际上是POST行,应该是GET。

String url = "https://graph.facebook.com/fql?q=SELECT uid, name, pic_square FROM  user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 =     me())&access_token="+access;
url = url.replace(" ", "%20");
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
String USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36";
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println(responseCode);
BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}

in.close();

关于Java 400 错误但在浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23072201/

相关文章:

java - 从java中的csv文件读取时忽略逗号

java - 找出数字中位数并打印出来的更快方法?

javascript - 如何获取str变量的值?

asp.net-mvc - 使用 Facebook 和 Twitter 登录 ASP.NET Web API

android - 如何获取用户信息。使用android facebook sdk?

java - 在 facebook 墙上发布 sdk 3.5 android 错误

java - 有没有一种简单的方法可以将 Swing 接口(interface)与数据源绑定(bind)

java - Kotlin 语法困惑 : fun Foo. bar() = (...)

html - 带有 iframe 的 Facebook 嵌入式视频无法正常工作

android - Xamarin Facebook 登录并使用 Graph api