nodejs request의 저렴한 의자

9853 단어 Node.js

무엇이 request입니까?


형식

request(options, function (error, response, body) {
  // リクエスト結果の処理
});
다른 형식도 있지만 옵션이 바꿀 수 있는 형식을 좋아합니다
http 요청 모듈을 제출합니다.
"options"설정은 각종 요청을 제출합니다.
공식.← 에 얼마나 빠졌는지 몰라요
끼워넣는 것이 깊어지는 것을 좋아하지 않기 때문에 항상promise.이것도 겸사겸사 싸구려 의자예요.
function httpRequest(options) {
  return new Promise((resolve, reject) => {
    request(options, function (error, response, body) {
      let ret = {
        headers: response.headers,
        body: body,
        error: error,
        href: response.request.uri.href, // promise.all したときリクエスト元を特定するために設定
        status: response.statusCode,
      }

      if (error) {
        reject(ret);
      } else {
        resolve(ret);
      }
    });
  });
}

Promise.resolve()
  .then(function(value) {
    var header = {
    }
    var data = {
    }
    var options = {
    }
    return httpRequest(options); // リクエスト1回目

  })
  .then(function(value){
    // リクエスト結果の処理
    return httpRequest(options); // リクエスト2回目
  })
  .then(function(value){
    // リクエスト結果の処理
  })
  .catch(function(reason) {
    // エラー、rejectしたときの処理
  });

합판

  process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; // オレオレ証明書ドメインへリクエストするとき。curl の --insecure と同じ

  var jar = request.jar(); // cookieを使うとき

  var header = {
//    'Content-type': 'application/x-www-form-urlencoded', // form のときつけてくれる
//    'Content-type': 'application/json',  // jsonのときつけてくれる
    Authorization: 'Bearer beabea', // Basic 認証はここに書いてはいけない
  }
  var data = {
    honya: 'honya data',
  }
  
  var options = {
    url: 'http://example.com',
    method: 'GET', 
    headers: header,
    followAllRedirects: true, // 3xxが返ってきたとき、リダイレクトする。
    jar: jar,  // cookieを使うとき
    auth: [ // Basic認証するとき
      user: 'username',
      password: 'password',
    ],
    qs: data, // GET のとき query stringをurlにつけてくれる
    form: data, // form-urlencoded で送るとき。Content-type ヘッダもつけてくれる
    json: data, // jsonで送るとき。Content-type ヘッダもつけてくれる
    proxy: 'http://userid:[email protected]:8080/', // proxyがあるとき
  }

빠져들 때마다 추가.

번거로울 때 기능 찾기


귀찮을 때 엉망진창으로 쓰지 말고 기능을 찾아라

지금까지의 미련

  • jar를 모르고 머리에서 set-cookie를 꺼내 다음 요청을 넣습니다.(이동)
  • basic인증을 진행할 때 Authorization 헤더에 base64의 값을 설정했습니다.(부동)
  • get 매개 변수를 http_로 설정build_query 같은 함수를 만들어서 URL에 추가했습니다.(이동)
  • followAllRedirects를 모르고 3xx가 돌아왔을 때 또 요청했습니다.(이동)
  • request-promise


    리퀘스트-promise를 사용해 보았을 때 바디 이외에는 돌려주지 않으며 4xxcatch는 사용하기 어렵습니다.

    axios


    인증서 영역에 요청할 때 설정이 잘못되었습니다.
    process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0
    인증서를 검증하지 않기 위해서는 기록을 완전히 바꿔야 한다.

    좋은 웹페이지 즐겨찾기