当前位置: 首页 > 知识库问答 >
问题:

Facebook Graph API SSL套接字手抖异常

任宾鸿
2023-03-14

这是iam使用graph api测试facebook数据收集的示例程序。在我的整个项目中,iam无法找到错误的根本原因。它第一次从程序中收集数据。但第二次显示ssl异常。

public class Testing {

    public static void main(String[] args) throws IOException {

        // Make a URL to the web page
        boolean flag=false;
        int count=0;
        while(true)
        {

            count++;

            if(count==2)
            {

                flag=false;
            }

        System.out.println(new Date());
        URL url = new URL("https://graph.facebook.com/fql?q=select+message,post_id,created_time,actor_id,attachment,comments,created_time,impressions,likes,message_tags,place,share_count+from+stream+where+source_id+in(select+page_id+from+page+where+username=%27ATT%27)+and+created_time>1368439594&access_token=[HERE STANDS MY ACCESSTOKEN]");
        System.out.println(new Date());
        // Get the input stream through URL Connection
        URLConnection con = url.openConnection();
        InputStream is =con.getInputStream();

        // Once you have the Input Stream, it's just plain old Java IO stuff.

        // For this case, since you are interested in getting plain-text web page
        // I'll use a reader and output the text content to System.out.

        // For binary content, it's better to directly read the bytes from stream and write
        // to the target file.


        BufferedReader br = new BufferedReader(new InputStreamReader(is));

        String line = null;

        // read each line and write to System.out
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }

        }
    }
}

请指导我解决这个问题。

共有1个答案

丰佐
2023-03-14

您的URL是HTTPS URL,这意味着它使用SSL,但您尝试使用urlconnection打开连接。要打开HTTPS URL,您应该使用HttpSurlConnection:

final HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

有了这个改变,它对我起作用了。;)

 类似资料:
  • 我最近一直在玩套接字,但是我遇到了一个问题…当我从服务器接收数据时,我得到一个“java.net.套接字异常:套接字关闭”异常。我没有在任何地方关闭套接字,事实上,我唯一使用关闭()的地方是扫描仪上从System.in读取文本; 以下是我的代码: 客户: 服务器: 数据包发送者: 客户端接收器: 数据包接收器:

  • 我想创建能够与多个客户端连接的服务器,但我总是收到“套接字关闭”异常或从输入流中读取空值,以前我认为这是由于以错误的方式关闭套接字连接引起的,所以我发布了这个主题,但现在似乎这不是问题所在。 服务器方法 HandlerThread类 客户端模拟器 例外和问题 在客户端模拟器之前启动服务器,客户端模拟器没有任何异常,但是在服务器端,并没有收到所有数据,从控制台打印信息时,我看到“null”、“Hel

  • 我们在premium plan上托管了Azure函数,在调用我们的In Premise API时,我们断断续续地得到system.net.sockets.socketException以下错误消息- 发送请求时出错。无法从传输连接读取数据:现有连接被远程主机强制关闭。远程主机强制关闭了现有连接。 函数在。NET Core3.1中,我们使用httpclientfactory来获取HttpClient

  • 问题内容: 我试图呼吁一个非常繁重的过程。平均工作时间估计为9-10分钟。 当我执行该过程时,我为一个巨大的数字设置了超时时间:99999999。 2分钟后,出现以下错误: java.net.SocketTimeoutException:读取超时 我尝试对其进行更多处理,并将超时设置为3000,并且在预期的3秒钟后出现了相同的错误。 您对为什么将其设置为最大120000 有任何想法吗? 问题答案:

  • 问题内容: 我看到了一些原因(请参阅下面的堆栈跟踪)。也就是说,客户端无法在超时(30秒)内获得响应。现在我想知道如何解决它。 简单的解决方案是增加超时时间,但是我想首先了解根本原因。你有什么建议? 由java.net.SocketTimeoutException引起:读取超时 问题答案: 这些超时是否在闲置一段时间后发生?空闲时间过长后,连接池可能已过时。 如果是这样,有两种解决方法: 捕获套接

  • 一些背景: 我有一个使用3G或4G数据连接的Android应用程序。但它也连接到一个wifi热点,以便在热点设备和应用程序之间传输一些数据。 我想做的是:创建一个到这个wifi热点的套接字连接,并通过这个套接字发送/接收数据。 我添加了以下代码,以确保我们在创建套接字时使用wifi热点wifi(否则它有时最终会使用数据连接): 这似乎没问题。但是,我在尝试连接到远程服务器地址时发现问题。下面是我正