Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >nodejs menghantar parameter permintaan http

nodejs menghantar parameter permintaan http

王林
王林asal
2023-05-28 09:26:371001semak imbas

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.

Modul http menghantar permintaan HTTP

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.

Menghantar permintaan GET

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.

Hantar permintaan POST

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.

Menghantar data borang

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.

Hantar data JSON

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:jquery menetapkan saiz kotakArtikel seterusnya:jquery menetapkan saiz kotak