Sedap juga menunjukkan ada perpustakaan wrapper yang sangat populer request.jsgithub.com/mikeal/request
Farzher
2
http request y async, curl disinkronkan.
e-info128
2
@WHK adalah sifat dari node.js
slifty
Masalah besar yang saya lihat dengan ini adalah, Anda tidak bisa hanya memasukkan URL dan mendapatkan respons. Anda perlu memisahkan URL dalam unit untuk memintanya. Tapi dari kutukan mungkin ada caranya, itu hanya akan lebih nyaman untuk menggunakan satu perintah seperti ikal untuk ini.
Level ini sangat rendah dibandingkan dengan perilaku seperti ikal yang diminta OP.
Dan Dascalescu
1
Kepada Semua: Saat ini, gunakan request- npmjs.com/package/request - dan pilih jawaban Nitish, di bawah, yang merupakan jawaban yang lebih baik pada tahun 2018.
Dan Nissenbaum
Selamat datang di kenyataan: permintaan telah ditinggalkan, lihat github.com/request/request/issues/3142 Menurut saya, operasi "tingkat rendah" memiliki lebih banyak potensi daripada ini, karena sama sekali tidak rendah, BASIC
vintproykt
35
Anda dapat dengan mudah menggunakan modul permintaan:
var request = require('request');
request('http://www.google.com',function(error, response, body){if(!error && response.statusCode ==200){
console.log(body)// Show the HTML for the Google homepage. }else{
console.log("Error "+response.statusCode)}})
Karena sepertinya node-curlsudah mati, saya telah memotongnya, berganti nama, dan dimodifikasi agar lebih seperti ikal dan untuk dikompilasi di bawah Windows.
Saya mencoba menginstal node-curl dan node-libcurl, tetapi keduanya memberi saya pesan yang sama: "Tidak dapat menemukan file header curl." Ini selama node tools/retrieve-win-deps && node tools/generate-stubs && node-gyp rebuildlangkah. Adakah pikiran?
SaganRitual
@GreatBigBore Anda perlu paket libcurl devel yang diinstal pada mesin Anda. Jika Anda menggunakan debian misalnya, Anda dapat menginstalnya dengan$ apt-get install libcurl4-openssl-dev
JCM
1
dapatkah Anda menggunakan -Lopsi ini?
hidup
2
Ya: CURLOPT_FOLLOWLOCATION , dengan node-libcurl yang akan Anda gunakan curl.setOpt( 'FOLLOWLOCATION', true );. Btw, pertanyaan seperti itu lebih cocok untuk pelacak masalah daripada bagian komentar ini. ;)
JCM
23
EDIT:
Untuk proyek baru, harap jangan menggunakan permintaan, karena sekarang proyek dalam mode maitainance, dan pada akhirnya akan usang
Alih-alih saya akan merekomendasikan Axios , perpustakaan ini sejalan dengan Node standar terbaru, dan ada beberapa plugin yang tersedia untuk meningkatkannya, memungkinkan tanggapan server tiruan, coba ulang otomatis dan fitur lainnya.
const axios = require('axios');// Make a request for a user with a given ID
axios.get('/user?ID=12345').then(function(response){// handle success
console.log(response);}).catch(function(error){// handle error
console.log(error);}).then(function(){// always executed});
var request = require('request');
request('http://www.google.com',function(error, response, body){if(!error && response.statusCode ==200){
console.log(body)// Show the HTML for the Google homepage.}})
Contoh-contoh di atas bekerja tetapi jangan sampai benar-benar berurusan dengan contoh dunia nyata (yaitu ketika Anda memproses data yang datang dalam beberapa potongan. Satu hal yang perlu Anda pastikan adalah bahwa Anda memiliki penangan 'on chunk' yang dorong data ke dalam array (cara tercepat untuk melakukan ini di JS) dan penangan 'on-end' yang menggabungkan semuanya jadi Anda bisa mengembalikannya.
Ini sangat diperlukan ketika Anda bekerja dengan permintaan besar (5000+ baris) dan server mengirimkan banyak data kepada Anda.
Ada modul npm untuk membuat permintaan seperti ikal npm curlrequest,.
Langkah 1: $npm i -S curlrequest
Langkah 2: Di file simpul Anda
let curl = require('curlrequest')let options ={}// url, method, data, timeout,data, etc can be passed as options
curl.request(options,(err,response)=>{// err is the error returned from the api// response contains the data returned from the api})
Gunakan modul permintaan npm dan setelah panggilan
var request = require('request');
request('http://www.google.com',function(error, response, body){
console.log('error:', error);// Print the error if one occurred
console.log('statusCode:', response && response.statusCode);// Print the response status code if a response was received
console.log('body:', body);// Print the HTML for the Google homepage.});
Untuk praktik terbaik juga gunakan beberapa modul winston logger atau console.log sederhana dan kemudian jalankan aplikasi Anda seperti
npm start output.txt
Hasil dari perintah di atas akan menghasilkan satu file txt di root dengan semua data yang telah Anda cetak di console.log
Saya akhirnya menggunakan perpustakaan grunt-shell .
Inilah inti sumber saya untuk tugas Grunt yang diimplementasikan sepenuhnya untuk siapa pun yang berpikir untuk bekerja dengan EdgeCast API. Anda akan menemukan dalam contoh saya bahwa saya menggunakan grunt-shell untuk menjalankan perintah curl yang membersihkan CDN.
Ini yang akhirnya saya lakukan setelah menghabiskan berjam-jam mencoba untuk mendapatkan permintaan HTTP untuk bekerja dalam Node. Saya bisa mendapatkan satu yang berfungsi di Ruby dan Python, tetapi tidak memenuhi persyaratan proyek ini.
Menggunakan reqclient , ini adalah modul klien kecil requestyang memungkinkan Anda untuk mencatat semua aktivitas dengan gaya cURL (opsional, untuk lingkungan pengembangan). Juga memiliki fitur-fitur bagus seperti penguraian URL dan parameter, integrasi otentikasi, dukungan cache, dll.
Misalnya, jika Anda membuat objek klien, lakukan permintaan:
Command prompt akan menunjukkan masalah - nama pengguna / pass salah; permintaan buruk dll
--URL basis data / lokasi server (Saya menggunakan DB Cloudant gratis sederhana) --user adalah bagian otentikasi nama pengguna: pass yang saya masukkan melalui API pass -X mendefinisikan perintah untuk memanggil apa (PUT, GET, POST, DELETE) -H tipe konten - Cloudant adalah tentang basis data dokumen, di mana JSON digunakan - konten data itu sendiri diurutkan sebagai JSON
Request npm module Request node moulde baik untuk digunakan, ia memiliki opsi pengaturan untuk mendapatkan / mengirim permintaan plus itu banyak digunakan dalam lingkungan produksi juga.
Anda dapat menggunakan modul permintaan npm. Sangat mudah digunakan. Permintaan dirancang untuk menjadi cara paling sederhana untuk melakukan panggilan http. Ini mendukung HTTPS dan mengikuti pengalihan secara default.
var request = require('request');
request('http://www.google.com',function(error, response, body){
console.log('error:', error);// Print the error if one occurred
console.log('statusCode:', response && response.statusCode);// Print the response status code if a response was received
console.log('body:', body);// Print the HTML for the Google homepage.});
http.request
...Jawaban:
Lihat dokumentasi untuk modul HTTP untuk contoh lengkap:
https://nodejs.org/api/http.html#http_http_request_options_callback
sumber
request.js
github.com/mikeal/requestcURL
perintah Anda menjadi permintaan node.js: curl.trillworks.com/#nodeThe
http
modul yang Anda gunakan untuk menjalankan server juga digunakan untuk membuat permintaan terpencil.Inilah contoh dalam dokumen mereka:
sumber
request
- npmjs.com/package/request - dan pilih jawaban Nitish, di bawah, yang merupakan jawaban yang lebih baik pada tahun 2018.Anda dapat dengan mudah menggunakan modul permintaan:
https://www.npmjs.com/package/request
Kode sampel:
sumber
Karena sepertinya
node-curl
sudah mati, saya telah memotongnya, berganti nama, dan dimodifikasi agar lebih seperti ikal dan untuk dikompilasi di bawah Windows.node-libcurl
Contoh penggunaan:
Perform adalah async,
dan tidak ada cara untuk menggunakannya secara sinkron saat ini (dan mungkin tidak akan pernah ada).Itu masih dalam alpha, tetapi ini akan segera berubah, dan bantuan sangat dihargai.Sekarang dimungkinkan untuk menggunakan
Easy
pegangan secara langsung untuk permintaan sinkronisasi, contoh:Juga, proyeknya stabil sekarang!
sumber
node tools/retrieve-win-deps && node tools/generate-stubs && node-gyp rebuild
langkah. Adakah pikiran?$ apt-get install libcurl4-openssl-dev
-L
opsi ini?curl.setOpt( 'FOLLOWLOCATION', true );
. Btw, pertanyaan seperti itu lebih cocok untuk pelacak masalah daripada bagian komentar ini. ;)EDIT:
Untuk proyek baru, harap jangan menggunakan permintaan, karena sekarang proyek dalam mode maitainance, dan pada akhirnya akan usang
https://github.com/request/request/issues/3142
Alih-alih saya akan merekomendasikan Axios , perpustakaan ini sejalan dengan Node standar terbaru, dan ada beberapa plugin yang tersedia untuk meningkatkannya, memungkinkan tanggapan server tiruan, coba ulang otomatis dan fitur lainnya.
https://github.com/axios/axios
Atau menggunakan async / tunggu:
Saya biasanya menggunakan REQUEST, ini klien HTTP yang disederhanakan tetapi kuat untuk Node.js
https://github.com/request/request
Di NPM
npm install request
Berikut ini adalah contoh penggunaan:
sumber
nah kalau kamu benar-benar membutuhkan ikal yang setara kamu bisa coba
node-curl
Anda mungkin perlu menambahkan
libcurl4-gnutls-dev
.sumber
Contoh-contoh di atas bekerja tetapi jangan sampai benar-benar berurusan dengan contoh dunia nyata (yaitu ketika Anda memproses data yang datang dalam beberapa potongan. Satu hal yang perlu Anda pastikan adalah bahwa Anda memiliki penangan 'on chunk' yang dorong data ke dalam array (cara tercepat untuk melakukan ini di JS) dan penangan 'on-end' yang menggabungkan semuanya jadi Anda bisa mengembalikannya.
Ini sangat diperlukan ketika Anda bekerja dengan permintaan besar (5000+ baris) dan server mengirimkan banyak data kepada Anda.
Berikut ini contoh di salah satu program saya (coffeescript): https://gist.github.com/1105888
sumber
Bagaimana misalnya, https://github.com/joyent/node/wiki/modules#wiki-tcp . Ringkasan yang sangat cepat =>
sumber
Ada modul npm untuk membuat permintaan seperti ikal
npm curlrequest
,.Langkah 1:
$npm i -S curlrequest
Langkah 2: Di file simpul Anda
Untuk membaca dan memahami lebih lanjut, npm curlrequest
sumber
Gunakan modul permintaan npm dan setelah panggilan
Untuk praktik terbaik juga gunakan beberapa modul winston logger atau console.log sederhana dan kemudian jalankan aplikasi Anda seperti
Hasil dari perintah di atas akan menghasilkan satu file txt di root dengan semua data yang telah Anda cetak di console.log
sumber
Saya akhirnya menggunakan perpustakaan grunt-shell .
Inilah inti sumber saya untuk tugas Grunt yang diimplementasikan sepenuhnya untuk siapa pun yang berpikir untuk bekerja dengan EdgeCast API. Anda akan menemukan dalam contoh saya bahwa saya menggunakan grunt-shell untuk menjalankan perintah curl yang membersihkan CDN.
Ini yang akhirnya saya lakukan setelah menghabiskan berjam-jam mencoba untuk mendapatkan permintaan HTTP untuk bekerja dalam Node. Saya bisa mendapatkan satu yang berfungsi di Ruby dan Python, tetapi tidak memenuhi persyaratan proyek ini.
sumber
Menggunakan reqclient , ini adalah modul klien kecil
request
yang memungkinkan Anda untuk mencatat semua aktivitas dengan gaya cURL (opsional, untuk lingkungan pengembangan). Juga memiliki fitur-fitur bagus seperti penguraian URL dan parameter, integrasi otentikasi, dukungan cache, dll.Misalnya, jika Anda membuat objek klien, lakukan permintaan:
Ini akan masuk dalam konsol seperti ini:
Permintaan akan mengembalikan objek Janji , jadi Anda harus menangani
then
dancatch
apa yang harus dilakukan dengan hasilnya.reqclient
tersedia dengan NPM , Anda dapat menginstal modul dengan:npm install reqclient
.sumber
Saya punya masalah mengirim data POST ke cloud DB dari IOT RaspberryPi, tetapi setelah berjam-jam saya berhasil meluruskannya.
Saya menggunakan command prompt untuk melakukannya.
Command prompt akan menunjukkan masalah - nama pengguna / pass salah; permintaan buruk dll
--URL basis data / lokasi server (Saya menggunakan DB Cloudant gratis sederhana) --user adalah bagian otentikasi nama pengguna: pass yang saya masukkan melalui API pass -X mendefinisikan perintah untuk memanggil apa (PUT, GET, POST, DELETE) -H tipe konten - Cloudant adalah tentang basis data dokumen, di mana JSON digunakan - konten data itu sendiri diurutkan sebagai JSON
sumber
Request npm module Request node moulde baik untuk digunakan, ia memiliki opsi pengaturan untuk mendapatkan / mengirim permintaan plus itu banyak digunakan dalam lingkungan produksi juga.
sumber
Anda mungkin ingin mencoba menggunakan sesuatu seperti ini
sumber
Anda dapat mencoba menggunakan aplikasi POSTMAN Chrome untuk permintaan Anda dan Anda dapat menghasilkan kode node js dari sana
sumber
Anda dapat menggunakan modul permintaan npm. Sangat mudah digunakan. Permintaan dirancang untuk menjadi cara paling sederhana untuk melakukan panggilan http. Ini mendukung HTTPS dan mengikuti pengalihan secara default.
sumber