Faraday: рдлреИрд░рд╛рдбреЗ.рдЧреЗрдЯ рдФрд░ рдмреЗрд╕рд┐рдХ рдСрде

рдХреЛ рдирд┐рд░реНрдорд┐рдд 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 рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ : рдпреВрдЖрд░рдПрд▓ рд╕реЗ @ рд╣реЛрд╕реНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВред

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. рдореБрдЭреЗ рдлреИрд░рд╛рдбреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП rubydoc.info рдкрд░ Faraday.get рд╡рд┐рдзрд┐ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рдорд┐рд▓реЗ: 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. рдРрд╕реЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЖрдк рдлреИрд░рд╛рдбреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 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. рдЗрдВрдЯреНрд░рд┐рдбрд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рдмреБрдирд┐рдпрд╛рджреА рдлреИрд░рд╛рдбреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╣реИ рдЬреЛ рдХреБрдЫ рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

Hope it helps some, рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорджрдж рдХрд░рддрд╛ рд╣реИ,
OI рдУрдЖрдИ

en

Thanks @OI for the helpful examples. рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @OIред

@jordansissel For now, please use this form: @jordansissel рдЕрднреА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЗрд╕ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

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 @jordansissel https://github.com/jordansissel рдЕрднреА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jeffb-stell picture jeffb-stell  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ryanbyon picture ryanbyon  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mvastola picture mvastola  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

olleolleolle picture olleolleolle  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amrrbakry picture amrrbakry  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ