Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >nodejs memulakan permintaan https

nodejs memulakan permintaan https

WBOY
WBOYasal
2023-05-23 14:23:072706semak imbas

Node.js ialah persekitaran berjalan Javascript yang popular dengan ciri yang pantas, cekap dan dipacu acara. Dalam Node.js, permintaan HTTP dan HTTPS boleh dimulakan dengan mudah menggunakan modul http dan https terbina dalam. Artikel ini akan memperkenalkan cara menggunakan Node.js untuk memulakan permintaan HTTPS.

1. Modul https dalam Node.js

Dalam Node.js, anda boleh menggunakan modul https terbina dalam untuk memulakan permintaan HTTPS. Modul https menyediakan antara muka yang serupa dengan modul http, yang boleh mendapatkan data daripada pelayan HTTPS dengan menghantar permintaan HTTP.

Sebelum menggunakan modul https, anda perlu menggunakan kaedah memerlukan untuk memperkenalkan modul https:

const https = require('https');

2 permintaan HTTPS

Untuk memulakan permintaan HTTPS, kita perlu menggunakan fungsi https.request(options, callback). Parameter pilihan ialah objek yang mengandungi maklumat yang diperlukan untuk memulakan permintaan, seperti URL yang diminta, kaedah yang diminta, pengepala permintaan, dsb. Parameter panggil balik ialah fungsi yang digunakan untuk mengendalikan respons pelayan. Fungsi ini mempunyai satu parameter, iaitu objek tindak balas pelayan.

Berikut ialah model asas untuk memulakan permintaan HTTPS:

const https = require('https');

const options = {
  // 请求的URL
  hostname: 'example.com',

  // 请求的方法,默认是GET
  method: 'GET',

  // 请求的头信息
  headers: {
    'Content-Type': 'application/json'
  }
};

const req = https.request(options, res => {
  console.log(`状态码: ${res.statusCode}`);

  res.on('data', d => {
    process.stdout.write(d);
  });
});

req.on('error', error => {
  console.error(error);
});

req.end();

Dalam contoh ini, kami menggunakan fungsi https.request(options, callback) untuk memulakan permintaan HTTPS. Kami menetapkan URL yang diminta kepada example.com, kaedah permintaan kepada GET dan Jenis Kandungan dalam pengepala permintaan kepada application/json.

Apabila pelayan membalas, kami memproses respons pelayan melalui fungsi panggil balik. Mula-mula kami akan mengeluarkan kod status pelayan, dan kemudian menggunakan kaedah process.stdout.write untuk mengeluarkan data ke konsol apabila menerima data.

3. Parameter pilihan permintaan HTTPS

Dalam bahagian sebelumnya, kami menyebut bahawa parameter pilihan diperlukan untuk memulakan permintaan HTTPS. Parameter pilihan ialah objek yang mengandungi maklumat permintaan Atribut paling asas ialah:

  • nama hos: nama hos yang diminta
  • port: nombor port yang diminta, umumnya protokol HTTPS Nombor port. ialah 443
  • laluan: laluan permintaan, iaitu lokasi sumber yang diminta dalam pelayan, seperti /albums
  • kaedah: kaedah permintaan, yang biasa digunakan ialah GET dan POST
  • pengepala: Minta pengepala, termasuk beberapa maklumat klien, seperti Terima, Ejen Pengguna, Jenis Kandungan, dll.

Berikut ialah contoh pilihan yang lengkap parameter:

const options = {
  hostname: 'example.com',
  port: 443,
  path: '/albums',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    'User-Agent': 'Mozilla/5.0'
  }
};

Objek pilihan ini menunjukkan bahawa permintaan POST dimulakan ke port 443 example.com Laluan permintaan ialah /albums Pengepala permintaan mengandungi tiga atribut: Content-Type, Content-Length dan User -Ejen.

4. Memproses respons HTTPS

Apabila permintaan HTTPS dimulakan, pelayan akan mengembalikan objek respons, yang melaluinya kami boleh mendapatkan respons pelayan. Objek tindak balas ialah aliran yang boleh dibaca Kita boleh menggunakan kaedah on() untuk mendengar data dan acara tamat untuk mendapatkan data yang dikembalikan oleh pelayan.

Berikut ialah contoh pemprosesan respons HTTPS:

const req = https.request(options, res => {
  let data = '';

  console.log(`状态码: ${res.statusCode}`);

  res.on('data', chunk => {
    data += chunk;
  });

  res.on('end', () => {
    console.log('响应数据: ');
    console.log(data);
  });
});

req.on('error', error => {
  console.error(`请求发生错误:${error}`);
});

req.end();

Dalam contoh ini, kami menentukan sama ada permintaan itu berjaya berdasarkan kod status (statusCode) respons HTTP. Dalam fungsi panggil balik data, kami menggunakan operator += untuk menggabungkan setiap bongkah data menjadi data respons yang lengkap. Apabila semua data diterima, kami menggunakan console.log untuk mengeluarkan data respons yang lengkap.

5. Permintaan HTTPS yang disulitkan

HTTPS ialah protokol HTTP selamat berdasarkan protokol TLS/SSL Ia menggunakan penyulitan kunci awam dan penyahsulitan kunci peribadi untuk melindungi keselamatan data. Dalam Node.js, menggunakan modul https untuk memulakan permintaan HTTPS adalah menggunakan protokol HTTPS yang selamat.

Jika pelayan menggunakan sijil yang ditandatangani sendiri, maka kami perlu menetapkan atribut rejectUnauthorized kepada false dalam objek pilihan, seperti yang ditunjukkan di bawah:

const options = {
  hostname: 'example.com',
  port: 443,
  path: '/albums',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    'User-Agent': 'Mozilla/5.0'
  },
  rejectUnauthorized: false
};

Seperti yang anda lihat, kami menambah rejectUnauthorized dalam objek pilihan: atribut palsu. Pilihan ini digunakan untuk menerima sijil yang tidak ditandatangani Jika tidak ditetapkan, ralat akan dilaporkan apabila pelayan menggunakan sijil yang tidak ditandatangani.

6. Ringkasan

Artikel ini memperkenalkan cara menggunakan modul https terbina dalam dalam Node.js untuk memulakan permintaan HTTPS. Kami membuat permintaan melalui fungsi https.request(options, callback), menggunakan parameter pilihan untuk menetapkan maklumat permintaan dan menggunakan parameter panggil balik untuk memproses respons pelayan. Pada masa yang sama, kami memperkenalkan cara memastikan keselamatan penyulitan data semasa memproses permintaan HTTPS.

Modul https terbina dalam Node.js menyediakan cara yang mudah untuk memulakan permintaan HTTPS dengan mudah boleh mendapatkan atau menyerahkan data semasa pembangunan, membolehkan kami membangunkan aplikasi dengan lebih cekap.

Atas ialah kandungan terperinci nodejs memulakan permintaan https. 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:Nodejs membina rantaian blokArtikel seterusnya:Nodejs membina rantaian blok