Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >nodejs menghantar parameter permintaan http
Lazim menggunakan modul http
dan https
untuk menghantar permintaan HTTP dalam Node.js Modul ini menyediakan kaedah yang berkuasa dan fleksibel untuk menghantar permintaan HTTP. Dalam artikel ini, kami akan membincangkan cara menghantar permintaan HTTP dalam Node.js dan memasukkan parameter dalam permintaan.
Dalam Node.js, kami boleh menggunakan modul http
untuk menghantar permintaan HTTP. Mari lihat contoh mudah:
const http = require('http'); const options = { hostname: 'www.example.com', port: 80, path: '/submit', method: 'POST', headers: { 'Content-Type': 'application/json' } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.write(JSON.stringify({ key: 'value' })); req.end();
Dalam contoh di atas, kami menggunakan kaedah http.request()
untuk membuat permintaan HTTP dan menentukan URL, port, laluan dan kaedah yang diminta melalui objek options
. Kami juga menetapkan pengepala permintaan untuk menentukan bahawa badan permintaan diformatkan sebagai JSON.
Kemudian, kami memanggil kaedah req.write()
, bersiri parameter untuk dihantar ke dalam rentetan JSON dan lengkapkan permintaan HTTP dengan memanggil kaedah req.end()
.
Akhir sekali, kami mentakrifkan peristiwa req
dan on('error')
objek res.on('data')
untuk mengendalikan pengecualian dan data tindak balas semasa proses permintaan dan respons.
Semasa menghantar permintaan GET, kami boleh menghantar parameter dengan menambahkan parameter pertanyaan dalam URL. Contohnya:
const http = require('http'); const query = 'q=nodejs'; const options = { hostname: 'www.example.com', port: 80, path: `/search?${query}`, method: 'GET' }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.end();
Dalam contoh di atas, kami menggunakan parameter pertanyaan q=nodejs
dalam URL untuk mencari sumber sasaran dan menambah parameter pertanyaan pada atribut path
.
Apabila menghantar permintaan POST, biasanya kami perlu menghantar beberapa data ke pelayan. Data ini boleh menjadi data borang atau data JSON, dsb. Kami perlu mengekod data dalam format yang ditentukan dan menghantarnya ke pelayan.
Mari lihat contoh menghantar data borang ke pelayan. Kita perlu menggunakan modul querystring
untuk mengekod data borang ke dalam rentetan pertanyaan URL.
const http = require('http'); const querystring = require('querystring'); const formData = { name: 'John Doe', email: 'johndoe@example.com', message: 'Hello, world!' }; const postData = querystring.stringify(formData); const options = { hostname: 'www.example.com', port: 80, path: '/contact', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': postData.length } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.write(postData); req.end();
Dalam contoh di atas, kami telah menentukan objek bernama formData
yang mengandungi data borang yang akan dihantar. Kami mengekod ini ke dalam rentetan pertanyaan URL menggunakan kaedah querystring.stringify()
dan menetapkannya sebagai badan permintaan permintaan POST. Kami juga mentakrifkan pengepala permintaan untuk menentukan format badan permintaan sebagai application/x-www-form-urlencoded
.
Selain menghantar data borang, kami juga boleh menghantar data JSON. Kita perlu menggunakan kaedah JSON.stringify()
untuk mensiri data JSON.
const http = require('http'); const jsonData = { name: 'John Doe', email: 'johndoe@example.com', message: 'Hello, world!' }; const postData = JSON.stringify(jsonData); const options = { hostname: 'www.example.com', port: 80, path: '/api', method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': postData.length } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data.toString()); }); }); req.on('error', (error) => { console.error(error); }); req.write(postData); req.end();
Dalam contoh di atas, kami mentakrifkan objek JSON bernama jsonData
dan mengekodnya ke dalam rentetan JSON menggunakan kaedah JSON.stringify()
. Kami juga mentakrifkan pengepala permintaan untuk menentukan format badan permintaan sebagai application/json
.
Ringkasan
Artikel ini menerangkan cara menghantar permintaan HTTP yang mengandungi parameter dalam Node.js. Kami menggunakan modul http
, untuk dokumentasi yang lebih terperinci tentang modul http
, lihat dokumentasi Node.js.
Atas ialah kandungan terperinci nodejs menghantar parameter permintaan http. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!