Faraday: Faraday::Error::ConnectionFailed

Criado em 27 fev. 2019  ·  4Comentários  ·  Fonte: lostisland/faraday

Estou relatando isso porque o erro final se refere a Faraday. Eu já relatei esse problema ao Kickscraper, mas eles não acreditam que o problema resida nos scripts do Kickscraper - https://github.com/markolson/kickscraper/issues/47.

Desculpe se este problema não reside com Faraday, mas gostaria de receber qualquer ajuda ou insights que esta comunidade possa fornecer.

Informação básica

  • Versão Faraday: 0.8.11
  • Versão do middleware Faraday: 0.13.1
  • Versão do Ruby: 2.6.1

Descrição do problema

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))

Passos para reproduzir

Instalação do rubi:

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

Instalação de gemas:
Extraído rubygems-3.0.2.zip para C:\Program Files\Ruby\gems\.
Instalado com cd C:\Program Files\Ruby\rubygems\3.0.2 && ..\..\Ruby26\bin\ruby.exe setup.rb

Instalação do Kickscraper:

'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

Lançamento 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

Comentários muito úteis

Obrigado por resolver um problema que estava completamente fora de sua base de código. Vocês são incríveis e rápidos!

Em 27 de fevereiro de 2019, às 7h18, Olle Jonsson [email protected] escreveu:

Fechado #886.


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub ou silencie a conversa.

Todos 4 comentários

Oi @mattmill30 , o erro que você está recebendo é bem claro:

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))

Aparentemente, o Kickscraper.client espera que um servidor esteja escutando em sua máquina na porta 8888 , mas parece que não é o caso.
Se esse for o único problema, temo que isso não seja um bug com Faraday, pois o problema parece ser que não há nenhum servidor ouvindo em localhost:8888 .

Como você pode ver no stacktrace, a última chamada é

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

então, do ponto de vista de Faraday, a solicitação é passada corretamente para o adaptador ( Net::HTTP neste caso), mas então algo está errado durante a execução.
O motivo pelo qual você vê um erro de Faraday gerado é porque nós resgatamos e encapsulamos as exceções de adaptadores para que, se você decidir alterar o adaptador no futuro, não precise alterar seu código. Isso não significa que houve um problema com Faraday.

Concordo com @benrugg que isso parece um problema de proxy.
Eu sugiro que você ligue para Kickscraper.proxy e veja o que isso retorna.
Lamento enviá-lo de volta para Kickscraper mas estou bastante confortável de que isso não é um problema com Faraday pelos motivos destacados acima

Obrigado @iMacTia , executei 'c = Kickscraper.proxy' e ele retorna " https://localhost :8888".

Como eu desabilitaria o proxy?

@mattmill30 Vou encerrar esta edição (não faz parte do projeto Faraday).

Aqui estão algumas notas de passagem sobre a configuração de proxy no projeto:

O bloco Kickscraper.configure contém linhas de configuração do cliente. Uma das configurações é proxy . Fonte

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

Defina config.proxy = nil ou config.proxy = "" .

Caso contrário, procure a constante LOCAL_PROXY, em seus scripts, e não a configure.

Exemplo de configuração:
https://github.com/markolson/kickscraper/blob/cef996ae73ef3166703d0cb9e452482cb5695c1a/spec/test_constants.rb

Espero que isto ajude!

Obrigado por resolver um problema que estava completamente fora de sua base de código. Vocês são incríveis e rápidos!

Em 27 de fevereiro de 2019, às 7h18, Olle Jonsson [email protected] escreveu:

Fechado #886.


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub ou silencie a conversa.

Esta página foi útil?
0 / 5 - 0 avaliações