我需要根据某些标签过滤器阅读推文,因此我尝试了使用java hbc客户端进行Twitter的流式api。首先,我尝试运行该项目随附的示例代码,以了解其工作原理。
所以我 :
在Twitter上声明一个应用程序+生成了我的访问密钥,令牌和
机密
从(https://github.com/twitter/hbc)下载了项目包
通过在pom.xml文件的TODO字段中填写以下内容来配置示例项目hbc-example
我的应用程序的密钥,令牌和机密(https://github.com/twitter/hbc/blob/master/hbc-example)
将示例项目hbc-example配置为在依赖项中同时使用hbc-core和hbc-twitter4j以避免依赖项错误
但是每次我用maven运行hbc-example时,我总是会得到:
(...)
[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类的hbc-example类作为具有“ main”函数的类时,也会发生这种情况
查看hbc核心资源,似乎由Connection对象的connect(HttpUriRequest request)函数引发了异常(请参阅:hbc-master / src / main / java / com / twitter / hbc / httpclient / Connection)
Apache Apache的httpclient异常文档没有提供如何处理此错误的任何线索,我想知道这里是否缺少某些内容,Twitter流API的更改使我的代码无法运行,等等。
谢谢您的任何帮助或建议!
Ps 1:仅用于信息,connect(HttpUriRequest request)是
在ClientBase。EstablishmentConnection中调用(连接conn,HttpUriRequest请求)
在ClientBase.run()中调用
在BasicClient.connect()中调用
由main调用
Ps 2:我的问题可能类似于尚未解决的问题:/ questions / 26363005 / twitter-streaming-w-status-code-401
最佳答案
我给出的答案为时已晚,但可能对其他人有用。实际上,如果将网络配置为与任何类型的代理一起使用,则似乎是由于缺少代理主机和端口的配置而导致出现此问题。如果您能通过一些方法浏览代码并设置代理主机和网络端口,此问题将得到解决。
P.S:我发现twitter流API非常简单易用,但是如果您使用的是配置了代理的网络(如工作场所等),请不要忘记配置代理设置。
_configurationBuilder是twitter4j.conf.ConfigurationBuilder的类型
_configurationBuilder.setHttpProxyHost(“您的代理主机”); _configurationBuilder.setHttpProxyPort(您的代理端口号);
如果您错过它,则在收听消息时会得到一些twitterException,而在谷歌搜索时也不会得到任何信息。