Bagaimana saya bisa membuat permintaan HTTP POST keluar, dengan data, di node.js?
node.js
http
post
httprequest
Menandai
sumber
sumber
node-fetch
yang merupakan implementasi darifetch
metode JavaScript asli untuk membuat permintaan HTTP.Jawaban:
Berikut adalah contoh penggunaan node.js untuk membuat permintaan POST ke Google Compiler API:
Saya telah memperbarui kode untuk menunjukkan cara memposting data dari file, alih-alih string yang dikodekan. Ini menggunakan
fs.readFile
perintah async untuk mencapai ini, memposting kode aktual setelah berhasil dibaca. Jika ada kesalahan, itu dilemparkan, dan jika tidak ada data proses keluar dengan nilai negatif untuk menunjukkan kegagalan.sumber
querystring.stringify()
tidak mendukung objek bersarang , jadi Anda mungkin ingin menggunakannyaqs.stringify()
.Content-Length
adalah byte dan tidak harus panjang string (UTF-16 dll). MenggunakanBuffer.byteLength(data)
akan selalu benar.querystring.stringify
harus objek data Anda sendiri, bukan sampah yang ditampilkan dalam jawaban ini (yang mungkin berguna untuk objek berbasis file?). Saya terjebak pada hal itu selama berabad-abad ... stackoverflow.com/questions/9768192/… memberikan solusi lengkap sayaIni menjadi jauh lebih mudah jika Anda menggunakan perpustakaan permintaan .
Selain menyediakan sintaksis yang bagus, permintaan json mudah, menangani penandatanganan otomatis (untuk twitter, dll.), Dapat melakukan formulir multi-bagian (misalnya untuk mengunggah file) dan streaming.
Untuk menginstal permintaan gunakan perintah
npm install request
sumber
Anda dapat menggunakan perpustakaan permintaan. https://www.npmjs.com/package/request
Untuk mengirim data JSON:
Untuk mengirim data xml:
sumber
Saya menggunakan Restler dan Needle untuk keperluan produksi. Keduanya jauh lebih kuat daripada httprequest asli. Dimungkinkan untuk meminta dengan otentikasi dasar, entri tajuk khusus atau bahkan mengunggah / mengunduh file.
Adapun operasi pasca / dapatkan, mereka juga jauh lebih mudah digunakan daripada panggilan ajax mentah menggunakan httprequest.
sumber
Sederhana dan bebas ketergantungan. Gunakan Janji sehingga Anda bisa menunggu hasilnya. Ini mengembalikan tubuh respons dan tidak memeriksa kode status respons.
Pemakaian:
sumber
write
metodereq,write()
digunakan?Anda juga dapat menggunakan Requestify , klien HTTP yang benar-benar keren dan sederhana yang saya tulis untuk nodeJS + yang mendukung caching.
Lakukan saja hal berikut:
sumber
Pembaruan 2020:
Saya benar-benar menikmati phin - klien HTTP Node.js yang sangat ringan
Ini dapat digunakan dalam dua cara berbeda. Satu dengan Janji (Async / Menunggu) dan yang lainnya dengan gaya panggilan balik tradisional.
Instal melalui:
npm i phin
Langsung dari README dengan
await
:Gaya tidak dipanggil (panggilan balik):
Pada 2015 sekarang ada berbagai perpustakaan yang berbeda yang dapat melakukan ini dengan pengkodean minimal. Saya lebih suka pustaka ringan yang elegan untuk permintaan HTTP kecuali Anda benar-benar membutuhkan kontrol dari hal-hal HTTP tingkat rendah.
Salah satu perpustakaan tersebut adalah Unirest
Untuk menginstalnya, gunakan
npm
.$ npm install unirest
Dan menjadi
Hello, World!
contoh bahwa semua orang terbiasa.Ekstra:
Banyak orang juga menyarankan penggunaan permintaan [2]
Perlu dicatat bahwa di balik layar
Unirest
menggunakanrequest
perpustakaan.Unirest menyediakan metode untuk mengakses objek permintaan secara langsung.
Contoh:
sumber
sumber
Ada puluhan pustaka sumber terbuka yang bisa Anda gunakan untuk membuat permintaan HTTP POST di Node.
1. Axios (Disarankan)
2. Jarum
3. Permintaan
4. Modul HTTPS Asli
Untuk detailnya, lihat artikel ini .
sumber
Ini adalah cara paling sederhana yang saya gunakan untuk membuat permintaan: menggunakan modul 'permintaan'.
Perintah untuk menginstal modul 'permintaan':
Kode contoh:
Anda juga dapat menggunakan modul 'http' bawaan Node.js untuk mengajukan permintaan.
sumber
Saya suka kesederhanaan superagent ( https://github.com/visionmedia/superagent ). API yang sama di kedua node dan browser.
Ada juga pengambilan simpul ( https://www.npmjs.com/package/node-fetch ), yang memiliki API yang cocok
fetch
dengan peramban - namun ini memerlukan pengodean string kueri manual, tidak secara otomatis menangani jenis konten, atau jadi salah satu dari superagent pekerjaan lain tidak.sumber
Jika Anda mencari permintaan HTTP berdasarkan janji, aksioma melakukan tugasnya dengan baik.
ATAU
sumber
Untuk Posting Istirahat / Permintaan JSON
Kita cukup menggunakan paket permintaan dan menyimpan nilai-nilai yang harus kita kirim dalam variabel Json.
Pertama instal paket yang diperlukan di konsol Anda dengan npm install request --save
sumber
Saya menemukan video yang menjelaskan cara mencapai ini: https://www.youtube.com/watch?v=nuw48-u3Yrg
Ini menggunakan modul "http" bersama dengan modul "querystring" dan "stringbuilder". Aplikasi mengambil dua angka (menggunakan dua kotak teks) dari halaman web dan setelah mengirimkan, mengembalikan jumlah dari dua (bersama dengan mempertahankan nilai-nilai dalam kotak teks). Ini adalah contoh terbaik yang bisa saya temukan di tempat lain.
sumber
Ini solusi saya untuk
POST
danGET
.Tentang
Post
metode ini:Jika tubuh adalah objek JSON, jadi penting untuk deserialize dengan
JSON.stringify
dan mungkin mengaturContent-Lenght
header sesuai:sebelum menuliskannya ke permintaan:
Tentang keduanya
Get
danPost
metode:The
timeout
dapat terjadi sebagaisocket
putuskan, sehingga Anda harus mendaftar handler-nya seperti:sedangkan
request
pawangSaya sangat menyarankan untuk mendaftarkan kedua penangan.
Badan respons terpotong, jadi Anda harus menyumbang potongan pada
data
pawang:Pada bagian
end
yangbody
akan berisi seluruh badan respons:Aman untuk dibungkus dengan
try
... catchthe
JSON.parse` karena Anda tidak dapat memastikan bahwa itu adalah json yang diformat dengan baik sebenarnya dan tidak ada cara untuk memastikannya pada saat Anda melakukan permintaan.Modul:
SimpleAPI
Pemakaian:
sumber
Setelah banyak berjuang sambil menciptakan utilitas tingkat rendah untuk menangani posting dan mendapatkan permintaan untuk proyek saya, saya memutuskan untuk mengirim upaya saya di sini. Banyak jawaban yang diterima, berikut adalah cuplikan untuk membuat http dan https permintaan POST untuk mengirim data JSON.
sumber
Atau Anda dapat menggunakan perpustakaan ini:
sumber
request
perpustakaan telah ditinggalkan.Axios adalah klien HTTP berbasis janji untuk browser dan Node.js. Axios memudahkan untuk mengirim permintaan HTTP asinkron ke titik akhir REST dan melakukan operasi CRUD. Ini dapat digunakan dalam JavaScript biasa atau dengan perpustakaan seperti Vue atau React.
sumber
Memposting contoh aksioma lain dari permintaan axios.post yang menggunakan opsi konfigurasi tambahan dan header kustom.
sumber
Dengan menggunakan permintaan ketergantungan .
Solusi sederhana:
sumber
request
berasal?Request-Promise
Memberikan respons berdasarkan janji. Kode respons http selain 2xx akan menyebabkan janji ditolak. Ini dapat ditimpa dengan mengatur options.simple = falsesumber