Saya mencoba mengirim permintaan "GET" ke REST API jarak jauh 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 tidak ada hasil. Saya mencoba melakukan ping ke URL langsung dari browser, saya berhasil mendapatkan respons, saya tidak mengerti apa yang salah dengan perintahnya.
Pada dasarnya saya ingin menetapkan 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.
Jawaban:
Ini harus bekerja:
gunakan opsi -i, bukan x.
sumber
'server:5050/a/c/getName{"param0":"pradeep"}'
atau"server:5050/a/c/getName{\"param0\":\"pradeep\"}"
.Jika Anda ingin mengirim data Anda di dalam body, maka Anda harus membuat
POST
atauPUT
sebagai gantinyaGET
.Bagi saya, sepertinya Anda mencoba mengirim kueri dengan parameter uri , yang tidak terkait dengan
GET
, Anda juga dapat meletakkan parameter iniPOST
,PUT
dan seterusnya.Sebagai contoh:
sumber
Jika Anda benar-benar ingin mengirimkan permintaan GET dengan JSON di dalam isi (katakanlah untuk permintaan XHR dan Anda tahu server mendukung pemrosesan isi pada permintaan GET), Anda dapat:
Sebagian besar server web modern menerima jenis permintaan ini.
sumber
{ "args": {}, "headers": { "Accept": "application/json", "Content-Length": "20", "Content-Type": "application/json", "Host": "httpbin.org", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:57.0) Gecko/20100101 Firefox/57.0" }, "origin": "27.94.235.50, 27.94.235.50", "url": "https://httpbin.org/get" }
Tidak ada yang diterima. Anda perlu menggunakan string kueri seperticurl -X GET https://httpbin.org/get?data=%7B%22param0%22%3A%22pradeep%22%7D
GET mengambil pasangan nilai nama.
Cobalah sesuatu seperti:
curl http://server:5050/a/c/getName/?param1=pradeep
atau
curl http://server:5050/a/c/getName?param1=pradeep
btw REST biasa akan terlihat seperti
curl http://server:5050/a/c/getName/pradeep
Jika menggunakan JSON di GET URL, ini bukan cara standar.sumber
Untuk layanan yang dilindungi nama pengguna dan kata sandi gunakan yang berikut ini
sumber
Mencoba
dari pada
Biasanya Anda tidak memerlukan opsi ini. Semua jenis permintaan GET, HEAD, POST dan PUT lebih sering dipanggil dengan menggunakan opsi baris perintah khusus.
Opsi ini hanya mengubah kata sebenarnya yang digunakan dalam permintaan HTTP, ini tidak mengubah cara berperilaku curl. Jadi misalnya jika Anda ingin membuat permintaan HEAD yang benar, menggunakan -X HEAD tidak akan cukup. Anda perlu menggunakan opsi -I, --head.
sumber
Tidak ada solusi yang disebutkan di atas yang berhasil untuk saya karena beberapa alasan. Inilah solusi saya. Ini cukup mendasar.
API_ENDPOINT adalah titik akhir api Anda, misalnya: http://127.0.0.1:80/api
-H Telah digunakan untuk menambahkan konten header.
JSON_DATA adalah isi permintaan Anda, bisa jadi seperti ini :: {"data_key": "value"}. '' di sekitar JSON_DATA itu penting.
Apa pun setelah -d adalah data yang perlu Anda kirimkan dalam permintaan GET
sumber