程序员9999号 2022-06-13 21:42 采纳率: 33.3%
浏览 37
已结题

Google、Facebook第三方登录获取用户信息超时

最近有个需求就是集成Google和facebook登录,我这边就是拿着前端发来的accesstoken去调用Google获取facebook的api获取用户信息,进行个注册,但是在后端发送请求时,显示超时,但是我用postman都可以获取到
public static String sendGet(String url) 
    {
        System.out.println(url);
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url;
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段

            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            in.close();
        } catch (Exception e) {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                return null;
            }
            e.printStackTrace();
            return null;
        }
        return result;
    }
public static void facebookAuth(String token)
    {
        String url = "https://graph.facebook.com/me?access_token="+token;
        
        System.err.println(sendGet(url));
    }

public static void main(String[] args) throws GeneralSecurityException, IOException 
    {
        
        facebookAuth("EAAGMf76DDU8BAIaO3MSQZBNksZCqfmlIHsIH1rJsvhl3jZCFYFPuZA6FZCQJAJGZBeZCnPJpUB0u504LbZBYP5ElJyz0B09AavAOKSIzwcdJKVL5bXDpIhaDNSIMbz1Wow6sriOtmXL6yhplkiSeutenkRvalcKgNDSUnZBuFtS02tX4G7r31pLt38mD0zgzalU6Nb76TojTKz0l3vaGzZCTcPwX29JBGHNkkSZA1uhyq3ZBHgZDZD");


    }
运行结果
java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:298)
    at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:292)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:395)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:203)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:189)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:167)
    at com.google.GoogleAuth.sendGet(GoogleAuth.java:80)
    at com.google.GoogleAuth.facebookAuth(GoogleAuth.java:109)
    at com.google.GoogleAuth.main(GoogleAuth.java:143)
null

我怀疑是不是没翻q的原因,结果用了还是一样的,但是我用postman就可以获取到信息,或者说idea里要发送https请求,要ssl证书?我也尝试了也没用

img

求能者帮忙,困扰好几天了,弄不出来怕是要走人了5555555555555555555555555555
  • 写回答

4条回答 默认 最新

  • 关注
    获得0.90元问题酬金

    先查看一下前端接口请求定义的时间为多久超时,可以试着增加请求时间

    评论

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 赞助了问题酬金10元 6月13日
  • 创建了问题 6月13日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog