6

http および https リクエストについて何かが欠けていると思います

たとえば、次のような URL を含む変数があります。

http(s)://website.com/a/b/file.html

その URI にリクエストしてデータを取得する簡単な方法があるかどうか知りたい

http(s)Request を作成するには、次のことを行う必要があります。

  1. URL が http か https かをテストして、適切なリクエストを作成します
  2. http(s):// の部分を削除し、結果を変数に入れます (ホスト名に http または https を指定するとエラーになります)
  3. ホスト名をパスから分離します:website.comおよび `/a/b/file.html
  4. この変数をオプション オブジェクトに入れます

これは必須ですか、それともホスト名とパスを取得して、サイトが http または https にあるかどうかをテストする必要のない簡単なソリューションですか?

編集:いくつかの特定のオプションを配置する必要があるため、http.getを使用できません

4

2 に答える 2

9

URL からすべてのコンポーネントを取得するには、それを解析する必要があります。ノード v0.10.13 には安定したモジュールがあります。url.parse

これは、その方法の簡単な例です。

var q = url.parse(urlStr, true);
var protocol = (q.protocol == "http") ? require('http') : require('https');
let options = {
    path:  q.pathname,
    host: q.hostname,
    port: q.port,
};
protocol.get(options, (res) => {...
于 2013-07-24T09:18:54.880 に答える