[json] json 매개 변수가있는 Curl GET 요청

다음과 같이 cURL을 통해 명령 프롬프트에서 원격 REST API에 “GET”요청을 보내려고합니다.

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”요청을 설정하고 싶습니다. 누구든지 내가 뭘 잘못하고 있는지 안내해 줄 수 있습니까? 다양한 게시물을 시도했지만 모두 GET이 아닌 POST 요청에 대해 이야기합니다.



답변

이것은 작동합니다.

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

x 대신 -i 옵션을 사용하십시오.


답변

당신이 몸 안에 데이터를 전송하려는 경우, 당신은 확인해야 POST하거나 PUT대신 GET.

당신이 보내려고하는 것처럼 저를 위해, 그것은 본다 URI 매개 변수 쿼리를 관련이 없습니다, GET당신은 또한 이러한 매개 변수를 넣을 수 있습니다 POST, PUT등등을.

쿼리는 본질적으로 계층 적이 지 않은 추가 식별 정보를 포함하는 물음표 ( “?”)로 구분 된 선택적 부분입니다. 쿼리 문자열 구문은 일반적으로 정의되지 않지만 일반적으로 세미콜론 또는 앰퍼샌드로 구분 된 쌍이있는 = 쌍의 시퀀스로 구성됩니다.

예를 들면 :

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


답변

본문에 JSON이 포함 된 GET 요청을 제출하려는 경우 (예를 들어 XHR 요청에 대해 서버가 GET 요청에 대한 본문 처리를 지원한다는 것을 알고 있음) 다음을 수행 할 수 있습니다.

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

대부분의 최신 웹 서버는 이러한 유형의 요청을 수락합니다.


답변

GET은 이름 값 쌍을 사용합니다.

다음과 같이 시도하십시오.

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

또는

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

btw 일반 REST는 다음과 같아야합니다.

curl http://server:5050/a/c/getName/pradeep GET URL에서 JSON을 사용하는 경우 표준 방법이 아닙니다.


답변

사용자 이름 및 암호로 보호 된 서비스의 경우 다음을 사용하십시오.

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


답변

시험

curl -G ...

대신에

curl -X GET ...

일반적으로이 옵션은 필요하지 않습니다. 모든 종류의 GET, HEAD, POST 및 PUT 요청은 전용 명령 줄 옵션을 사용하여 호출됩니다.

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


답변

어떤 이유로 인해 위에서 언급 한 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 여기 내 해결책이 있습니다. 꽤 기본입니다.

curl -X GET API_ENDPOINT -H ‘Content-Type : application / json’dJSON_DATA

API_ENDPOINT 는 API 엔드 포인트입니다. 예 : http://127.0.0.1:80/api

-H 는 헤더 내용을 추가하는 데 사용되었습니다.

JSON_DATA 는 요청 본문이며 :: { “data_key”: “value”}와 같이 될 수 있습니다. JSON_DATA를 둘러싼 것이 중요합니다.

-d 이후의 모든 것은 GET 요청에서 보내야하는 데이터입니다.