Bagaimana saya bisa mengirim / memposting file xml ke server lokal http: // localhost: 8080 menggunakan curl dari baris perintah?
Perintah apa yang harus saya gunakan?
sumber
Bagaimana saya bisa mengirim / memposting file xml ke server lokal http: // localhost: 8080 menggunakan curl dari baris perintah?
Perintah apa yang harus saya gunakan?
Jika pertanyaan itu terhubung ke pertanyaan Hudson Anda yang lain, gunakan perintah yang mereka berikan. Cara ini dengan XML dari baris perintah:
$ curl -X POST -d '<run>...</run>' \
http://user:pass@myhost:myport/path/of/url
Anda perlu mengubahnya sedikit untuk membaca dari file:
$ curl -X POST -d @myfilename http://user:pass@myhost:myport/path/of/url
Baca halaman manual . mengikuti abstrak untuk -d Parameter.
-d / - data
(HTTP) Mengirim data yang ditentukan dalam permintaan POST ke server HTTP, dengan cara yang sama seperti browser ketika pengguna telah mengisi formulir HTML dan menekan tombol kirim. Ini akan menyebabkan curl meneruskan data ke server menggunakan aplikasi tipe konten / x-www-form-urlencoded. Bandingkan dengan formulir -F / -.
-d / - data sama dengan --data-ascii. Untuk memposting data murni biner, Anda sebaiknya menggunakan opsi --data-binary. Untuk menyandikan URL nilai bidang formulir, Anda dapat menggunakan --data-urlencode.
Jika salah satu dari opsi ini digunakan lebih dari satu kali pada baris perintah yang sama, potongan data yang ditentukan akan digabungkan bersama dengan tanda & -simbol yang terpisah. Jadi, menggunakan '-d name = daniel -d skill = lousy' akan menghasilkan potongan postingan yang terlihat seperti 'name = daniel & skill = lousy'.
Jika Anda memulai data dengan huruf @, sisanya harus berupa nama file untuk membaca data dari, atau - jika Anda ingin ikal membaca data dari stdin. Isi file harus sudah disandikan URL. Beberapa file juga dapat ditentukan. Memposting data dari file bernama 'foobar' akan dilakukan dengan --data @foobar.
The contents of the file must already be URL-encoded.
File XML OP tentu saja tidak.--header "Content-Type:application/xml"
Anda tidak diharapkan untuk menyandikan URL-L
, jangan tidak menggunakan-X POST
karena akan membuat diarahkan permintaan penggunaan POST juga. Jika Anda hanya menggunakan -d seperti yang disarankan @Tai, ini tidak akan terjadi-d
strip menghapus dari file. Untuk menghindari ini, gunakan--data-binary
saja.Dari halaman manual , saya percaya ini adalah droid yang Anda cari:
Jadi dalam kasus Anda, ini akan menjadi sesuatu seperti
curl -F file=@/some/file/on/your/local/disk http://localhost:8080
sumber
file=@-
sangat membantu jika Anda ingin mem -pipe file Anda.Anda dapat menggunakan opsi --data with file.
Tulis konten xml ke file bernama soap_get.xml dan gunakan perintah curl untuk mengirim permintaan:
sumber
Dengan Jenkins 1.494, saya dapat mengirim file ke parameter pekerjaan di Ubuntu Linux 12.10 menggunakan
curl
dengan--form
parameter:Di server Jenkins, saya mengonfigurasikan pekerjaan yang menerima satu parameter: nama file yang diunggah
myfileparam
.Baris pertama dari panggilan ikal itu membangun formulir web dengan parameter bernama
myfileparam
(sama seperti dalam pekerjaan); nilainya akan menjadi isi file pada sistem file lokal bernama/local/path/to/your/file.txt
. Itu@
simbol awalan memberitahu curl untuk mengirim file lokal bukan nama file yang diberikan.Baris kedua mendefinisikan permintaan JSON yang cocok dengan parameter formulir di baris satu: parameter file bernama
myfileparam
.Baris ketiga mengaktifkan tombol Build form. Baris keempat adalah URL pekerjaan dengan akhiran "/ build".
Jika panggilan ini berhasil, ikal kembali
0
. Jika tidak berhasil, kesalahan atau pengecualian dari layanan dicetak ke konsol. Jawaban ini mengambil banyak dari posting blog lama yang berhubungan dengan Hudson , yang saya mendekonstruksi dan bekerja kembali untuk kebutuhan saya sendiri.sumber
Inilah cara Anda dapat POST XML pada Windows menggunakan baris perintah curl pada Windows. Lebih baik gunakan file batch / .cmd untuk itu:
sumber
Jika Anda memiliki beberapa tajuk maka Anda mungkin ingin menggunakan yang berikut:
sumber
Anda dapat menggunakan perintah ini:
sumber
Jika Anda menggunakan curl di Windows:
sumber