Pertanyaan Curl MENDAPATKAN permintaan dengan parameter json


Saya mencoba mengirim permintaan "GET" ke REST API dari Command Prompt melalui cURL seperti ini:

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

Tapi itu tidak menghasilkan output. Saya mencoba melakukan ping URL langsung dari browser, saya berhasil mendapatkan respons, saya tidak mengerti apa yang salah dengan perintah itu.

Pada dasarnya saya ingin mengatur permintaan "GET" ke layanan REST jarak jauh yang memberi saya data json sebagai respons melalui curl. Adakah yang bisa membimbing saya kesalahan apa yang saya lakukan? Saya mencoba berbagai posting, tetapi semuanya berbicara tentang permintaan POST bukan tentang GET.


76
2018-01-24 06:59


asal


Jawaban:


Ini seharusnya berfungsi:

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

opsi pengguna -i bukan x.


102
2018-01-24 07:15



Jika Anda ingin mengirim data Anda di dalam tubuh, maka Anda harus membuat POST atau PUT dari pada GET.

Bagi saya, sepertinya Anda mencoba mengirim permintaan dengan parameter uri, yang tidak terkait dengan GET, Anda juga bisa memasang parameter ini POST, PUT dan seterusnya.

Kueri adalah bagian opsional, dipisahkan oleh tanda tanya ("?"), Yang berisi informasi identifikasi tambahan yang tidak bersifat hierarkis. Sintaks string kueri tidak didefinisikan secara umum, tetapi umumnya diatur sebagai urutan = pasang, dengan pasangan dipisahkan oleh titik koma atau ampersand.

Sebagai contoh:

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

13
2018-01-24 07:34



GET mengambil pasangan nilai nama.

Coba sesuatu seperti:

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

atau

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

btw REST biasa harus terlihat seperti itu

curl http://server:5050/a/c/getName/pradeep Jika diperlukan JSON di GET URL, itu bukan cara standar.


7
2018-01-24 07:11



Untuk layanan yang dilindungi kata sandi dan pengguna, gunakan yang berikut ini

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

5
2018-03-21 00:11



Mencoba

curl -G ...

dari pada

curl -X GET ...

Biasanya Anda tidak membutuhkan opsi ini. Segala jenis permintaan GET, HEAD, POST, dan PUT lebih disukai dengan menggunakan opsi baris perintah khusus.

Opsi ini hanya mengubah kata yang sebenarnya digunakan dalam permintaan HTTP, tidak mengubah cara curl berperilaku. Jadi misalnya jika Anda ingin membuat permintaan HEAD yang tepat, menggunakan -X HEAD tidak akan mencukupi. Anda harus menggunakan opsi -I, --header.


2
2017-08-14 00:41