Pregunta Solicitud Curl GET con parámetro json


Estoy tratando de enviar una solicitud "GET" a una API REST remota desde el símbolo del sistema a través de cURL de esta manera:

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

Pero no devuelve ninguna salida. Traté de hacer ping a la URL directamente desde el navegador, puedo obtener una respuesta con éxito, no entiendo cuál es el problema con el comando.

Básicamente quiero establecer una solicitud "OBTENER" a un servicio REST remoto que me da datos json como respuesta a través de curl. ¿Alguien puede guiarme qué error estoy haciendo? Probé varias publicaciones, pero todas hablan de solicitudes POST no sobre GET.


76
2018-01-24 06:59


origen


Respuestas:


Esto debería funcionar :

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

opción de usuario -i en lugar de x.


102
2018-01-24 07:15



Si desea enviar sus datos dentro del cuerpo, entonces tiene que hacer una POST o PUT en lugar de GET.

Para mí, parece que estás tratando de enviar el consulta con parámetros uri, que no está relacionado con GET, también puedes poner estos parámetros en POST, PUT y así.

La consulta es una parte opcional, separada por un signo de interrogación ("?"), Que contiene información de identificación adicional que no es de naturaleza jerárquica. La sintaxis de la cadena de consulta no está genéricamente definida, pero comúnmente se organiza como una secuencia de = pares, con los pares separados por un punto y coma o un símbolo comercial.

Por ejemplo:

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

13
2018-01-24 07:34



GET toma pares de nombre y valor.

Pruebe algo como:

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

o

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

por cierto, un RESTO regular debería verse algo así como

curl http://server:5050/a/c/getName/pradeep Si se necesita JSON en GET URL, no es una forma estándar.


7
2018-01-24 07:11



Para los servicios protegidos por nombre de usuario y contraseña, use la siguiente

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

5
2018-03-21 00:11



Tratar

curl -G ...

en lugar de

curl -X GET ...

Normalmente no necesitas esta opción. Todo tipo de solicitudes GET, HEAD, POST y PUT se invocan más bien mediante el uso de opciones de línea de comando dedicadas.

Esta opción solo cambia la palabra real utilizada en la solicitud HTTP, no altera la forma en que se comporta curl. Entonces, por ejemplo, si desea hacer una solicitud HEAD adecuada, usar -X HEAD no será suficiente. Necesita usar la opción -I, -head.


2
2017-08-14 00:41