2011-12-14 5 views
70

Curl은 접두사가 X 인 일련의 다른 http 메소드 호출을 제공하지만, 동일한 메소드도 제공하지 않습니다. 두 가지 모두 시도해 본 결과 차이점을 파악할 수 없습니다. 누군가이 두 작업이 어떻게 다른지 빨리 설명 할 수 있습니까?curl -GET 및 -X GET

답변

157

기본적으로 어떤 요청 방법을 사용할지 명시 적으로 말하지 않고 말장난을 사용합니다. curl http://example.com과 같은 HTTP URL을 전달하는 경우 GET을 사용합니다. -d 또는 -F을 사용하면 말풍선은 POST를 사용합니다. -I은 HEAD를 일으키고 -T은 PUT이됩니다.

왜곡 된 기본 선택에 만족하지 않는 이유가있는 경우 -X [WHATEVER]을 지정하여 이러한 요청 방법을 재정의 할 수 있습니다. 이렇게하면 curl -X DELETE [URL]을 수행하여 DELETE를 보낼 수 있습니다.

따라서 GET은 어쨌든 사용되기 때문에 curl -XGET [URL]을 수행하는 것은 의미가 없습니다. 같은 맥락에서해야 할 일이 무의미하다. curl -X POST -d data [URL]... 그러나 GET 요청에서 요청 본체를 curl -X GET -d data [URL]과 함께 보내는 재미 있고 다소 드문 요청을 할 수있다. 깊은 (단일 대시를 사용하여)

curl -GET는이 목적을 위해 단지 잘못 파고

. 이는 -G, -E-T 옵션을 지정하는 것과 동일하며 완전히 다른 작업을 수행합니다.

또한 문제를 혼동하지 않기 위해 --get이라는 컬 옵션이 있습니다. 이것은 긴 형식의 -G이며 -d으로 지정된 데이터를 POST 대신 GET 요청으로 변환하는 데 사용됩니다.

, 그것은이 불필요한 사용에 대한 사용자 정보를 통보 7.45.0에서

경고 및 컬의 현대 버전에서 나중에

(I 이후. curl FAQ to cover this을 채우기 위해 여기에 내 자신의 대답을 사용) 상세 모드가 활성화 될 때 -X (-v) - 사용자가 알 수 있도록합니다. 자세한 설명과 동기는 this blog post입니다.

+1

-XGET은 작동하지 않을 수도 있지만 명시 적으로 지정합니다. – mtyson

+0

"기본적으로 curl을 사용하면 어떤 요청 방법을 사용할지 명시 적으로 말하지 않고도 사용할 수 있습니다. curl http://example.com과 같은 HTTP URL을 전달하면 GET이 사용됩니다. -d 또는 -F를 사용하면 curl이 POST를 사용합니다 , 나는 HEAD를 일으키고 -T는 그것을 PUT으로 만들 것입니다. " 당신이 알아야 할 모든 것. – Donato

0

나는 아마도 귀하의 질문에 따르지 않고 있지만 GET 방법을 사용하기 위해 컬을 말하고 -X 옵션을 사용하여 원하는 모든 것을 만들 수있는 옵션 -G가있는 것처럼 보입니다. 따라서 곱슬 곱슬 -G와 곱슬 곱슬 -XGET은 같은 것입니다. 나는 볼 수 없다. -G 이후 컬이 무시하는 것 같다.

+2

사실 "컬 -GET을" '가져 오기'기본값을 대체 할 수는 -G -E와 -T 같습니다. 모든 긴 이름 옵션은 --url 또는 --user와 같이 두 개의 대시와 함께 사용됩니다. –

+0

맞습니다. 나는 거기에서 생각하지 않았다. – masebase

3

-x는 [당신의 방법]
X는

+0

아니요, 소문자 -x는 사용할 프록시를 설정합니다 ... –