Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TwitterHBC-IOException在Java中阅读推文_Java_Twitter_Httpclient_Twitter Oauth_Twitter Streaming Api - Fatal编程技术网

使用TwitterHBC-IOException在Java中阅读推文

使用TwitterHBC-IOException在Java中阅读推文,java,twitter,httpclient,twitter-oauth,twitter-streaming-api,Java,Twitter,Httpclient,Twitter Oauth,Twitter Streaming Api,我需要根据特定的标签过滤器来阅读tweet,所以我用javahbc客户端试用了Twitter的流式api。首先,我尝试运行项目提供的示例代码,以便了解它是如何工作的。 因此,我: 在twitter+上声明了一个应用程序,生成了我的访问密钥、令牌和 秘密 已从()下载项目包 通过在pom.xml文件的TODO字段中填入 我的应用程序的密钥、令牌和机密() 将示例项目hbc示例配置为在依赖项中同时使用hbc核心和hbc-twitter4j,以避免依赖项错误 但每次我与maven一起运行hbc示例时

我需要根据特定的标签过滤器来阅读tweet,所以我用javahbc客户端试用了Twitter的流式api。首先,我尝试运行项目提供的示例代码,以便了解它是如何工作的。

因此,我:

  • 在twitter+上声明了一个应用程序,生成了我的访问密钥、令牌和 秘密
  • 已从()下载项目包
  • 通过在pom.xml文件的TODO字段中填入 我的应用程序的密钥、令牌和机密()
  • 将示例项目hbc示例配置为在依赖项中同时使用hbc核心和hbc-twitter4j,以避免依赖项错误
  • 但每次我与maven一起运行hbc示例时,我似乎总是得到:

    (...)
    [hosebird-client-io-thread-0] INFO com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 Establishing a connection
    [hosebird-client-io-thread-0] WARN com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 IOException caught when establishing connection to https://stream.t
    witter.com/1.1/statuses/filter.json?delimited=length&stall_warnings=true
    [hosebird-client-io-thread-0] WARN com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 failed to establish connection properly
    [hosebird-client-io-thread-0] INFO com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 Done processing, preparing to close connection
    [hosebird-client-io-thread-0] INFO com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 Establishing a connection
    [hosebird-client-io-thread-0] WARN com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 IOException caught when establishing connection to https://stream.t
    witter.com/1.1/statuses/filter.json?delimited=length&stall_warnings=true
    [hosebird-client-io-thread-0] WARN com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 failed to establish connection properly
    [hosebird-client-io-thread-0] INFO com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 Done processing, preparing to close connection
    [hosebird-client-io-thread-0] INFO com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 Establishing a connection
    [hosebird-client-io-thread-0] WARN com.twitter.hbc.httpclient.ClientBase - hoseb
    ird-client-0 IOException caught when establishing connection to https://stream.t
    witter.com/1.1/statuses/filter.json?delimited=length&stall_warnings=true
    (...)
    
    当我使用FilterStreamSample类作为带有“main”函数的类运行hbc示例时,也会发生这种情况

    查看hbc核心源代码,异常似乎是由连接对象的连接(HttpUriRequest请求)函数引发的(请参阅:hbc master/src/main/java/com/twitter/hbc/httpclient/Connection)

    关于httpclient异常的Apache文档并没有提供多少关于如何处理此错误的线索,我想知道这里是否有我遗漏的东西,Twitter流式API的更改阻止了我的代码运行,任何

    感谢您的任何帮助或建议

    Ps 1:仅为获取信息,连接(HttpUriRequest)是

    • 在ClientBase.establishConnection中调用(连接连接、HttpUriRequest请求)
    • 在ClientBase.run()中调用
    • 在BasicClient.connect()中调用
    • main调用

    Ps 2:我的问题可能类似于这个尚未解决的问题:/questions/2636305/twitter-streaming-w-status-code-401

    我给出答案太晚了,但可能对其他人有用。实际上,如果您的网络配置为与任何类型的代理一起使用,那么这个问题似乎是由于缺少代理主机和端口的配置造成的。如果您知道如何浏览代码并设置网络的代理主机和端口,这个问题就会得到解决

    注:我发现twitter流媒体api非常简单易用,但是如果你使用的是像workplace等配置了代理的网络,别忘了配置代理设置

    _configurationBuilder是twitter4j.conf.configurationBuilder的类型 _setHttpProxyHost(“您的代理主机”)_configurationBuilder.setHttpProxyPort(您的代理端口号)

    如果你错过了它,你会在收听信息时收到一些twitterException,而在谷歌搜索时也不会得到任何信息