dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

Node.js で axios による http リクエスト

2021-11-02 21:39:30 | Node.js
Node.js で axios による http リクエストのメモ。
axios では、レスポンスステータスが 404 などの場合、
例外をキャッチして処理する必要があります。
const axios = require('axios');

async function http_get(url, params) {
  console.log(url);

  try {
    const response = await axios.get(url, params);
    console.log('[success]');
    console.log('[status]', response.status);
    console.log('[data]', response.data.substr(0, 40));
  } catch (e) {
    const response = e.response;
    console.log('[error]');
    console.log('[status]', response.status);
    console.log('[data]', response.data.substr(0, 40));
  }
}

(async () => {
  const params = {
    MT: '検索',
    IE: 'UTF-8',
    OE: 'UTF-8',
  };

  // 200 OK                                                                     
  await http_get('https://search.goo.ne.jp/web.jsp', params);

  // 404 not found                                                              
  await http_get('https://search.goo.ne.jp/dummy.jsp', params);
})();

実行結果
https://search.goo.ne.jp/web.jsp
[success]
[status] 200
[data] <!DOCTYPE HTML> <html lang="ja" class="seatchTopHtml"> <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"> <meta charset="UTF-8"/> <meta name="referrer" content="origin-when-cross-origin"> 
https://search.goo.ne.jp/dummy.jsp
[error]
[status] 404
[data] <!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex,follow">
<title>404 - gooウェブ検索</title>
<meta name="viewport" content="width=device-width,initial-sca