nodejsはhttpリクエストパラメータを送信します

王林
リリース: 2023-05-28 09:26:37
オリジナル
830 人が閲覧しました

http および https モジュールを使用して、Node.js で HTTP リクエストを送信することがより一般的です。これらのモジュールは、HTTP リクエストを送信するための強力かつ柔軟な方法を提供します。この記事では、Node.js で HTTP リクエストを送信し、リクエストにパラメータを含める方法について説明します。

http モジュールは HTTP リクエストを送信します

Node.js では、http モジュールを使用して HTTP リクエストを送信できます。簡単な例を見てみましょう:

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();
ログイン後にコピー

上記の例では、http.request() メソッドを使用して HTTP リクエストを作成し、options オブジェクトを渡します。要求された URL、ポート、パス、およびメソッドを指定します。また、リクエスト本文が JSON 形式であることを指定するリクエスト ヘッダーも設定します。

次に、req.write() メソッドを呼び出して JSON 文字列に送信するパラメーターをシリアル化し、req.end() メソッドを呼び出します。 HTTP リクエストを完了します。

最後に、例外を処理するために、req オブジェクトの on('error') および res.on('data') イベントを定義します。要求および応答プロセス中の応答データ。

GET リクエストの送信

GET リクエストを送信するときは、URL にクエリ パラメータを追加することでパラメータを渡すことができます。例:

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();
ログイン後にコピー

上記の例では、URL でクエリ パラメータ q=nodejs を使用してターゲット リソースを検索し、そのクエリ パラメータを path に追加します。 属性中間。

POST リクエストの送信

POST リクエストを送信するときは、通常、サーバーにデータを送信する必要があります。このデータはフォーム データや JSON データなどです。データを指定された形式でエンコードしてサーバーに送信する必要があります。

フォーム データの送信

フォーム データをサーバーに送信する例を見てみましょう。 querystring モジュールを使用して、フォーム データを 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();
ログイン後にコピー

上の例では、送信するフォーム データを含む formData という名前のオブジェクトを定義しました。 querystring.stringify() メソッドを使用してこれを URL クエリ文字列にエンコードし、POST リクエストのリクエスト本文として設定します。また、リクエスト ヘッダーを定義して、リクエスト本文の形式を application/x-www-form-urlencoded として指定します。

JSON データの送信

フォーム データの送信に加えて、JSON データも送信できます。 JSON.stringify() メソッドを使用して 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();
ログイン後にコピー

上の例では、jsonData という名前の JSON オブジェクトを定義し、JSON.stringify() メソッドを使用してそれを JSON 文字列にエンコードします。また、リクエスト本文の形式を application/json として指定するリクエスト ヘッダーも定義します。

概要

この記事では、Node.js でパラメーターを含む HTTP リクエストを送信する方法について説明します。 http モジュールを使用しました。http モジュールの詳細なドキュメントについては、Node.js ドキュメントを参照してください。

以上がnodejsはhttpリクエストパラメータを送信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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