nodejsリクエストアドレス

WBOY
リリース: 2023-05-13 21:29:11
オリジナル
445 人が閲覧しました

Web 開発のプロセスでは、バックエンドにリクエストを送信したり、データを取得したり、いくつかの操作を実行したりする必要があることがよくあります。 Node.js は、リクエストを送信し、返されたコンテンツを処理するための迅速かつ簡単な方法を提供します。この記事では、Node.js を使用して HTTP/HTTPS リクエストを送信し、返されたリクエストのコンテンツを処理する方法を紹介します。

まず、request パッケージをインストールする必要があります。これは、Node.js で HTTP リクエストを送信する一般的な方法です。次のコマンドを使用してインストールできます。

npm install request
ログイン後にコピー

インストールが完了したら、request パッケージを使用して HTTP/HTTPS リクエストを送信できます。

リクエストの送信

requestの使用リクエスト

リクエストの送信は非常に簡単です。URL パラメーターを渡すだけです。例:

const request = require('request');

request('https://www.baidu.com', function (error, response, body) {
  console.log('error:', error); // 打印错误信息
  console.log('statusCode:', response && response.statusCode); // 打印响应状态码
  console.log('body:', body); // 打印HTML内容
});
ログイン後にコピー

上記のコードは、Baidu Web サイトに GET リクエストを送信し、応答ステータス コードと HTML コンテンツを出力します。

POST リクエストを送信する必要がある場合は、リクエスト パラメータを含むエンティティを渡す必要があります:

const request = require('request');

request.post('https://api.example.com/login', {form: {username: 'example', password: 'password'}}, 
  function (error, response, body) {
    console.log('error:', error); // 打印错误信息
    console.log('statusCode:', response && response.statusCode); // 打印响应状态码
    console.log('body:', body); // 打印响应内容
  }
);
ログイン後にコピー
上記のコードは、POST リクエストを https://api に送信します。 .example.com/login、ユーザー名とパスワードのパラメータを指定します。 form

は、要求されたパラメータを含むパラメータ エンティティです。

応答の処理

リクエストが実行されると、request はコールバックの後に、ステータス コードと応答のエンティティ コンテンツを含む応答オブジェクトを返します。 response.statusCode を使用して応答ステータス コードにアクセスし、response.body

を使用してエンティティ コンテンツにアクセスできます。

コンテンツを直接印刷するだけでなく、返されたコンテンツを解析して処理することもできます。一般的な処理方法には、文字列解析、JSON 解析、バイナリ解析などが含まれます。

たとえば、コールバックが HTML コンテンツを返す場合、cheerio または node-html-parser

を使用して解析できます。

const request = require('request');
const cheerio = require('cheerio');

request('https://www.example.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const $ = cheerio.load(body);
    console.log($('title').text());
  }
});
ログイン後にコピー

上記コードでは、cheerio を使用して HTML コンテンツを解析し、Web ページのタイトルを出力します。

コールバックがコンテンツを JSON 形式で返す場合、JSON.parse

メソッドを使用して JSON 文字列を解析できます。例:

const request = require('request');

request('https://api.example.com/users/1', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const user = JSON.parse(body);
    console.log(user.name);
    console.log(user.email);
  }
});
ログイン後にコピー

上記のコードは、返された JSON コンテンツを解析し、ユーザーの名前と電子メールを出力します。

コールバックがバイナリ コンテンツを返す場合、デコードに Buffer

オブジェクトを使用できます。例:

const request = require('request');

request('https://www.example.com/logo.png', {encoding: null}, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const data = 'data:' + response.headers['content-type'] + ';base64,' + Buffer.from(body).toString('base64');
    console.log(data);
  }
});
ログイン後にコピー
上記のコードは、PNG 画像を取得し、Buffer

オブジェクトを使用して、返されたバイナリ データをデコードします。

HTTPS リクエストの送信

HTTPS リクエストを送信する必要がある場合は、https パッケージを使用する必要があります。 https

パッケージは Node.js に付属するパッケージであり、インストールする必要はありません。次のコードのような HTTPS リクエストを送信できます。

const https = require('https');

https.get('https://www.example.com', function (response) {
  console.log('statusCode:', response.statusCode);
  console.log('headers:', response.headers);

  response.on('data', function (data) {
    console.log(data.toString());
  });
});
ログイン後にコピー
上記のコードは、https.get メソッドを使用して HTTPS GET リクエストを送信し、応答ステータス コードと応答ヘッダーを出力します。 response.on

メソッドを使用して、返されたコンテンツのストリームをリッスンして処理します。

HTTPS リクエストにはセキュリティ認証が必要なため、HTTPS 証明書が必要です。 ca、cert、key、およびその他の属性をパラメーターに追加して、証明書を指定できます。

例:

const fs = require('fs');
const https = require('https');

const options = {
  ca: [fs.readFileSync('ca.pem')],
  cert: fs.readFileSync('cert.pem'),
  key: fs.readFileSync('key.pem')
};

https.get('https://www.example.com', options, function (response) {
  console.log('statusCode:', response.statusCode);
  console.log('headers:', response.headers);

  response.on('data', function (data) {
    console.log(data.toString());
  });
});
ログイン後にコピー
上記のコードは独自の証明書を使用します。ここで、ca はルート証明書の証明書チェーン、cert および key は、独自の証明書と秘密キーです。

概要

この記事では、Node.js で HTTP/HTTPS リクエストを送信する方法と、返されたコンテンツを処理する方法を紹介します。最後に、HTTP リクエストの送信にはクロスドメインの問題が伴う可能性があり、クロスドメイン リクエスト ヘッダーを設定する必要があることに注意してください。同時に、リクエストが多すぎたり、機密情報が漏洩したりしないように、セキュリティの問題やパフォーマンスの問題にも注意を払う必要があります。 ###

以上がnodejsリクエストアドレスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!