Httpie: .netrc์˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2013๋…„ 04์›” 10์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: httpie/httpie

README์—๋Š” " .netrc ์ธ์ฆ ์ •๋ณด๋„ ์กด์ค‘๋ฉ๋‹ˆ๋‹ค."๋ผ๊ณ ๋˜์–ด ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด README๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. PR์„ ์ œ์ถœํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์—ฌ์ „ํžˆ ์•Œ์•„๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. curl -n ๋งŒํผ ์‰ฝ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์‹ค์ œ๋กœ $ python -m netrc ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ~/.netrc ๊ฐ€ Python์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ netrc ๋ชจ๋“ˆ์—์„œ ์–ด๋–ป๊ฒŒ ์ดํ•ด๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜

๋ชจ๋“  6 ๋Œ“๊ธ€

ํ˜„์žฌ HTTPie๋Š” ํ•ญ์ƒ ๊ธฐ๋ณธ ~/.netrc ํŒŒ์ผ (๋˜๋Š” Windows์—์„œ๋Š” ~/_netrc )์„ ์ฝ์œผ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ python-requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

ํ  ... curl ์™€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ~/.netrc ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ HTTPie์—์„œ๋Š” ์™„์ „ํžˆ ๋ฌด์‹œ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ž‘๋™ํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

~/.netrc :

$ http httpbin.org/basic-auth/httpie/test
HTTP/1.1 401 UNAUTHORIZED
Connection: close
Content-Length: 0
Date: Wed, 10 Apr 2013 16:49:10 GMT
Server: gunicorn/0.16.1
Www-Authenticate: Basic realm="Fake Realm"

~/.netrc :

machine httpbin.org
login httpie
password test

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

$ http httpbin.org/basic-auth/httpie/test
HTTP/1.1 200 OK
Connection: close
Content-Length: 47
Content-Type: application/json
Date: Wed, 10 Apr 2013 16:49:23 GMT
Server: gunicorn/0.16.1

{
    "authenticated": true, 
    "user": "httpie"
}

--verbose ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜์—ฌ HTTPie๊ฐ€ Authorization: Basic xxxxxx ์ „์†กํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ $ python -m netrc ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ~/.netrc ๊ฐ€ Python์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ netrc ๋ชจ๋“ˆ์—์„œ ์–ด๋–ป๊ฒŒ ์ดํ•ด๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜

์ด์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋กœ readme๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ’€ ์š”์ฒญ์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ธฐ ์œ„ํ•ด .netrc ์—์žˆ๋Š” login ํ•„๋“œ ์ค‘ ํ•˜๋‚˜ ์˜†์— ๊ฐ’์ด ์—†์—ˆ๋Š”๋ฐ, ์ด๋Š” Python์„ ๊ดด๋กญํžˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ curl ์— ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰