Faraday: Faraday.get ΠΈ базовая авторизация

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 23 ΠΎΠΊΡ‚. 2014  Β·  5ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: lostisland/faraday

I can't seem to get Faraday.get to accept the user:pass@host syntax from a url and respect it. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, я Π½Π΅ ΠΌΠΎΠ³Ρƒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Faraday.get ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ синтаксис user:pass@host ΠΈΠ· URL-адрСса ΠΈ ΡƒΠ²Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ.

Reproducing with Faraday 0.9.0 ВоспроизвСдСниС с Π€Π°Ρ€Π°Π΄Π΅Π΅ΠΌ 0.9.0

Faraday.get("http://foo:bar<strong i="9">@localhost</strong>:3333/test")

The "server" Π‘Π΅Ρ€Π²Π΅Ρ€"

% nc -l localhost 3333
GET /test HTTP/1.1
User-Agent: Faraday v0.9.0
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
Connection: close
Host: localhost:3333

I expected an Authentication header, or perhaps an error that auth wasn't supported. Π― ΠΎΠΆΠΈΠ΄Π°Π» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‡Ρ‚ΠΎ аутСнтификация Π½Π΅ поддСрТиваСтся.

I couldn't find docs on the Faraday.get method on rubydoc.info for the Faraday module: http://www.rubydoc.info/gems/faraday/Faraday - so I'm not sure what I'm doing wrong. Π― Π½Π΅ смог Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Faraday.get Π½Π° сайтС rubydoc.info для модуля ЀарадСя: http://www.rubydoc.info/gems/faraday/Faraday , поэтому я Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ я Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

If you point me in the write direction, I am happy to write documentation for this method. Если Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΌΠ½Π΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ записи, я с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ Π½Π°ΠΏΠΈΡˆΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

en

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠΏΡ€ΠΎΡ‰Π΅:
Faraday.get('http://localhost:3000', nil, authorization: "Bearer 1123")

en

ВсС 5 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

There are several ways you can set authentication headers with Faraday. БущСствуСт нСсколько способов установки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Faraday. One way is to initialize a Faraday::Connection instance and use the basic_auth helper method: Один ΠΈΠ· способов β€” ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ экзСмпляр Faraday::Connection ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ basic_auth :

conn = Faraday.new(url: 'http://example.com') # create a new Connection with base URL
conn.basic_auth('user', 'pass')               # set the Authentication header
conn.get('/foo')                              # GET http://example.com/foo

You could also use middleware: Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ПО:

conn = Faraday.new(url: 'http://example.com') do |builder|
  builder.use Faraday::Request::Retry
  builder.use Faraday::Request::BasicAuthentication, 'user', 'pass'
  builder.use Faraday::Response::Logger
  builder.use Faraday::Adapter::NetHttp
end

conn.get('/foo')

or: ΠΈΠ»ΠΈ:

Faraday.new(url: 'http://example.com') do |builder|
  builder.request  :retry
  builder.request  :basic_authentication, 'user', 'pass'
  builder.response :logger
  builder.adapter  :net_http
end

conn.get('/foo')

Intridea has a nice blog post on basic Faraday usage that's a few years old but still relevant. Π£ Intridea Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ пост Π² Π±Π»ΠΎΠ³Π΅ ΠΎΠ± основах использования ЀарадСя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ нСсколько Π»Π΅Ρ‚, Π½ΠΎ ΠΎΠ½ всС Π΅Ρ‰Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½.

Hope it helps some, НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ,
OI ОИ

en

Thanks @OI for the helpful examples. Бпасибо @OI Π·Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

@jordansissel For now, please use this form: @jordansisssel А ΠΏΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту Ρ„ΠΎΡ€ΠΌΡƒ:

conn = Faraday.new('http://example.com')
conn.basic_auth('user', 'pass')
conn.get('/foo')

Sorry for the trouble. Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° бСспокойство.

en

Thanks for the pointers, all! ВсСм спасибо Π·Π° подсказки! It helped me get things working. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½Π΅ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ❀️❀️❀️ ❀️❀️❀️

On Tuesday, October 6, 2015, Mislav MarohniΔ‡ [email protected] Π’ΠΎ Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ, 6 октября 2015 Π³., Мислав ΠœΠ°Ρ€ΠΎΡ…Π½ΠΈΡ‡, увСдомлСния Π½Π° адрСс github.com.
wrote: написал:

Thanks @OI https://github.com/OI for the helpful examples. Бпасибо @OI https://github.com/OI Π·Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

@jordansissel https://github.com/jordansissel For now, please use this @jordansisssel https://github.com/jordansisssel А ΠΏΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это
form: Ρ„ΠΎΡ€ΠΌΠ°:

conn = Faraday.new('http://example.com') conn = Faraday.new('http://example.com')
conn.basic_auth('user', 'pass') conn.basic_auth('ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ', 'ΠΏΡ€ΠΎΡ…ΠΎΠ΄')
conn.get('/foo') conn.get('/foo')

Sorry for the trouble. Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° бСспокойство.

β€” β€”
Reply to this email directly or view it on GitHub ΠžΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° это письмо Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ»ΠΈ просмотритС Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/lostisland/faraday/issues/426#issuecomment -145914646. https://github.com/lostisland/faraday/issues/426#issuecomment-145914646 .

en

Об этом Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΎΠ±Ρ‰Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 343.

en

ΠΏΡ€ΠΎΡ‰Π΅:
Faraday.get('http://localhost:3000', nil, authorization: "Bearer 1123")

en
Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ