Faraday: 法拉第::错误::连接失败

创建于 2019-02-27  ·  4评论  ·  资料来源: lostisland/faraday

我报告这个是因为最后的错误是指法拉第。 我已经向 Kickscraper 报告了这个问题,但他们认为问题不在 Kickscraper 脚本中 - https://github.com/markolson/kickscraper/issues/47。

如果法拉第不存在此问题,我深表歉意,但我将不胜感激该社区可以提供的任何帮助或见解。

基础信息

  • 法拉第版本:0.8.11
  • 法拉第中间件版本:0.13.1
  • 红宝石版本:2.6.1

问题描述

C:\Program Files\Ruby\Ruby26\lib\ruby\gems\2.6.0\gems\kickscraper-0.2.4>rake console
fatal: not a git repository (or any of the parent directories): .git
irb(main):001:0> c = Kickscraper.client
Traceback (most recent call last):
       16: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/request/url_encoded.rb:14:in `call'
       15: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/response.rb:8:in `call'
       14: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday_middleware-0.13.1/lib/faraday_middleware/response/follow_redirects.rb:75:in `call'
       13: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday_middleware-0.13.1/lib/faraday_middleware/response/follow_redirects.rb:87:in `perform_with_redirection'
       12: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday_middleware-0.13.1/lib/faraday_middleware/response_middleware.rb:31:in `call'
       11: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/kickscraper-0.2.4/lib/kickscraper/connection.rb:25:in `call'
       10: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/adapter/net_http.rb:39:in `call'
        9: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/adapter/net_http.rb:76:in `perform_request'
        8: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:1470:in `request'
        7: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:919:in `start'
        6: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
        5: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:945:in `connect'
        4: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/timeout.rb:103:in `timeout'
        3: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/timeout.rb:93:in `block in timeout'
        2: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:946:in `block in connect'
        1: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect'
Faraday::Error::ConnectionFailed (Failed to open TCP connection to localhost:8888 (No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 8888))

重现步骤

红宝石安装:

rubyinstaller-2.6.1-1-x86.exe installed to 'C:\Program Files\Ruby\Ruby26'

宝石安装:
将 ruby​​gems-3.0.2.zip 解压到C:\Program Files\Ruby\gems\.
使用cd C:\Program Files\Ruby\rubygems\3.0.2 && ..\..\Ruby26\bin\ruby.exe setup.rb安装

踢脚线安装:

'C:\Program Files\Ruby\Ruby26\bin\gem' install kickscraper
Fetching faraday_middleware-0.13.1.gem
Fetching faraday-0.8.11.gem
Fetching multipart-post-1.2.0.gem
Fetching kickscraper-0.2.4.gem
Fetching multi_json-1.13.1.gem
Fetching uri-query_params-0.7.1.gem
Fetching hashie-2.1.2.gem
Successfully installed multipart-post-1.2.0
Successfully installed faraday-0.8.11
Successfully installed faraday_middleware-0.13.1
Successfully installed multi_json-1.13.1
Successfully installed hashie-2.1.2
Successfully installed uri-query_params-0.7.1
Successfully installed kickscraper-0.2.4
Parsing documentation for multipart-post-1.2.0
Installing ri documentation for multipart-post-1.2.0
Parsing documentation for faraday-0.8.11
Installing ri documentation for faraday-0.8.11
Parsing documentation for faraday_middleware-0.13.1
Installing ri documentation for faraday_middleware-0.13.1
Parsing documentation for multi_json-1.13.1
Installing ri documentation for multi_json-1.13.1
Parsing documentation for hashie-2.1.2
Installing ri documentation for hashie-2.1.2
Parsing documentation for uri-query_params-0.7.1
Installing ri documentation for uri-query_params-0.7.1
Parsing documentation for kickscraper-0.2.4
Installing ri documentation for kickscraper-0.2.4
Done installing documentation for multipart-post, faraday, faraday_middleware, m
ulti_json, hashie, uri-query_params, kickscraper after 74 seconds
7 gems installed

启动 Kickscraper:

C:\Program Files\Ruby\Ruby26\lib\ruby\gems\2.6.0\gems\kickscraper-0.2.4>rake console
irb(main):001:0> c = Kickscraper.client

最有用的评论

感谢您解决了完全超出您的代码库的问题。 你们真棒,而且速度很快!

2019 年 2 月 27 日上午 7:18,Olle Jonsson [email protected]写道:

关闭#886。


你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub 上查看它,或将线程静音。

所有4条评论

@mattmill30 ,你得到的错误很清楚:

Faraday::Error::ConnectionFailed (Failed to open TCP connection to localhost:8888 (No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 8888))

显然Kickscraper.client期望服务器在端口8888上侦听您的计算机,但情况似乎并非如此。
如果这是唯一的问题,恐怕这不是法拉第的错误,因为问题似乎是没有服务器在localhost:8888上监听。

从堆栈跟踪中可以看出,最后一次调用是

1: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect'

所以从法拉第的角度来看,请求被正确地传递给了适配器(在这种情况下是Net::HTTP ),但是在执行它时出现了问题。
您看到引发法拉第错误的原因是因为我们拯救并包装了适配器异常,因此如果您决定将来更改适配器,则无需更改代码。 这并不意味着法拉第有问题。

我同意@benrugg的观点,这看起来像是一个代理问题。
我建议你打电话给Kickscraper.proxy看看它会返回什么。
很抱歉将您送回Kickscraper ,但我很放心,由于上述原因,这不是法拉第的问题

谢谢@iMacTia ,我已经运行了'c = Kickscraper.proxy',它返回“ https://localhost :8888”。

我将如何禁用代理?

@mattmill30我将关闭这个问题(不是法拉第项目的一部分)。

以下是关于项目中代理设置的一些注意事项:

Kickscraper.configure块中有客户端配置行。 其中一种配置是proxy来源

Kickscraper.configure do |config|
  config.email = '[email protected]'
  config.password = 'This is not my real password. Seriously.'
  config.proxy = nil
end

将其设置为config.proxy = nilconfig.proxy = ""

否则,请在脚本中查找 LOCAL_PROXY 常量,不要设置它。

设置示例:
https://github.com/markolson/kickscraper/blob/cef996ae73ef3166703d0cb9e452482cb5695c1a/spec/test_constants.rb

希望这可以帮助!

感谢您解决了完全超出您的代码库的问题。 你们真棒,而且速度很快!

2019 年 2 月 27 日上午 7:18,Olle Jonsson [email protected]写道:

关闭#886。


你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub 上查看它,或将线程静音。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

QuinnWilton picture QuinnWilton  ·  4评论

amrrbakry picture amrrbakry  ·  4评论

Lewiscowles1986 picture Lewiscowles1986  ·  4评论

jedeleh picture jedeleh  ·  3评论

ioquatix picture ioquatix  ·  4评论