2014-01-24 3 views
65

이 같은 컬을 통해 명령 프롬프트에서 원격 REST API에 "GET"요청을 전송하려고에 요청 GET 말림 :는 JSON 매개 변수

curl -X GET -H "Content-type: application/json" -H "Accept: application/json" "http://server:5050/a/c/getName/{"param0":"pradeep"}" 

을하지만 더 출력을 반환하지 않습니다. 브라우저에서 직접 URL을 핑 (ping)하려했으나 성공적으로 응답을받을 수 있었지만 명령에 무엇이 잘못되었는지 이해하지 못합니다.

기본적으로 curl을 통해 응답으로 json 데이터를 제공하는 원격 REST 서비스에 "GET"요청을 설정하려고합니다. 내가하는 실수는 누구든지 안내 할 수 있을까? 나는 다양한 게시물을 시도했지만 모두 POST에 대한 이야기는 GET에 관한 것이 아닙니다.

+0

게시되고 다음 사용합니까? –

+0

오류없이 서버 측에서 성공적으로 실행 중입니다. 그러나 컬 측에서는 아무 데이터도 표시하지 않습니다. 몇 초 후에 핑 (ping) 만하면 데이터가없는 공백으로 표시됩니다. –

+0

curl -i -H "Accept : application/json" "http : // server : 5050/a/c/getName/{"param0 ":"pradeep "}"(x 대신 옵션 -i) . –

답변

91

이 작동합니다 :

curl -i -H "Accept: application/json" "server:5050/a/c/getName{"param0":"pradeep"}" 

사용자 옵션 -i 대신 X의.

+4

아마도 다른 견적? "server : 5050/a/c/getName { 'param0': 'pradeep'}" –

7

GET은 이름 값 쌍을 취합니다.

시도 뭔가 같은 :

curl http://server:5050/a/c/getName/?param1=pradeep

또는

curl http://server:5050/a/c/getName?param1=pradeep

BTW 일반 REST는 GET URL에 JSON 걸리는 경우

curl http://server:5050/a/c/getName/pradeep 같은 것을, 그렇지 않은 보일 것입니다 표준 방식.

12

본문에 데이터를 보내려면 GET 대신 POST 또는 PUT을 만들어야합니다. 나를 위해

, 그것은 당신이 GET 관련되지 않은 query with uri parameters을 보내려고하는 것처럼, 당신은 또한 등등 POST, PUT과에 이러한 매개 변수를 넣을 수 있습니다 보인다.

쿼리는 선택적인 부분으로 물음표 ("?")로 구분되며 본질적으로 계층 적 구조가 아닌 추가 식별 정보를 포함합니다. 쿼리 문자열 구문은 일반적으로 정의되어 있지 않지만 일반적으로 세미콜론이나 앰퍼샌드로 구분 된 쌍의 = 쌍으로 구성됩니다. 예를 들어

:

curl http://server:5050/a/c/getName?param0=foo&param1=bar 
+2

모든 HTTP 요청 메시지에 메시지 본문이 포함될 수 있습니다. GET 의미론 때문에 GET에 유용하지 않습니다. 요청 본문의 내용 (있는 경우)은 응답을 변경해서는 안됩니다. –

2

는 일반적으로이 옵션이 필요하지 않습니다

curl -G ... 

대신

curl -X GET ... 

의를 사용해보십시오. 모든 종류의 GET, HEAD, POST 및 PUT 요청은 전용 명령 행 옵션을 사용하여 호출됩니다.

이 옵션은 HTTP 요청에 사용 된 실제 단어 만 변경하며 컬이 작동하는 방식은 변경하지 않습니다. 예를 들어, 적절한 HEAD 요청을 만들고 싶다면 -X HEAD만으로는 충분하지 않습니다. -I, --head 옵션을 사용해야합니다.

4

를 들어 사용자 이름과 암호로 보호 서비스는 서버 측에서 어떤 오류를

curl -u admin:password -X GET http://172.16.2.125:9200 -d '{"sort":[{"lastUpdateTime":{"order":"desc"}}]}' 
+0

curl -X POST -H "내용 유형 : application/json"-d '{ "stuff": "things"}'http : // ... – keithpjolley