我正在尝试在服务器端制作“使用 facebook 登录”按钮。
我成功获取了 access_token,但是当我调用 url 来接收带有用户信息的 json 对象时,响应正文内容仅返回“True”
最糟糕的是,如果我将 url 粘贴到同一个浏览器窗口中,浏览器会在响应正文中带来正确的 json 文本。
那是因为我在服务器端进行了此调用,并且进行调用的代码位于此处:
String token_url = "https://graph.facebook.com/oauth/access_token?"
+ "client_id=" + app_id + "&redirect_uri=" + URLEncoder.encode(my_url, "UTF-8")
+ "&client_secret=" + app_secret + "&code=" + code;
String response = Util.sendGET(token_url, "GET", "application/json");
函数 sendGET 如下:
public static String sendGET (String pageUrl, String method, String contentType) {
String pagecontent = "";
try {
String stuff = null;
java.net.URL url = new java.net.URL(pageUrl);
java.net.HttpURLConnection conn = (java.net.HttpURLConnection)url.openConnection();
conn.setRequestMethod(method);
conn.setRequestProperty("Content-Type", contentType);
conn.setDoOutput(true);
conn.setUseCaches(true);
conn.setAllowUserInteraction(false);
DataOutputStream printout = new java.io.DataOutputStream(conn.getOutputStream ());
BufferedReader in = new java.io.BufferedReader(
new InputStreamReader(conn.getInputStream())
);
while ((stuff = in.readLine()) != null) {
pagecontent += stuff;
}
in.close();
System.out.println("Page Content = " + pagecontent);
} catch (Exception e) {
e.printStackTrace();
}
return pagecontent;
}
正如我所说,pagecontent 的结果是“true”字符串,但是如果我将 de token_url 内容粘贴到浏览器上,它会带来正确的 json 对象。