ホーム>source

Node.jsアプリからRailsサーバーにGETリクエストを送信しようとしています。現在、私は request を使用していますそのようなモジュール:

<前>ウィズウィズ

これは機能します。しかし、私が望むのは、 var request = require("request"); var url = 'www.example.com' function sendRequest(url){ string = 'http://localhost:3000/my-api-controller?url=' + url; request.get(string, function(error, response, body){ console.log(body); }); } を構築しないことです string リクエストですが、リクエストのパラメータを(jQueryのような方法で)JavaScriptオブジェクトとして渡します。有る一例  get のwikiページまさにこの種の構文を使用するモジュール:

<前>ウィズウィズ

ただし、この構文を自分の目的に合わせようとすると、次のようになります。

<前>ウィズウィズ

ウィズウィズパラメータは送信されませんでした。

だから私の質問は、私はここで何か間違っているのですか、それとも request をやっているのですかモジュールは request.get('http://some.server.com/', { 'auth': { 'user': 'username', 'pass': 'password', 'sendImmediately': false } }); のパラメーターの受け渡しをサポートしていませんJavaScriptオブジェクトとしてリクエストしますか?そうでない場合は、便利なNodeモジュールを提案できますか?

function sendRequest(url){ request.get('http://localhost:3000/my-api-controller', {url: url}, function(error, response, body){ console.log(body); }); }
あなたの答え
  • 解決した方法 # 1

    request でポイントする「HTTP認証」の例  モジュールはクエリ文字列を作成せず、特定のオプションに基づいて認証ヘッダーを追加します。そのページの別の部分で、必要なものが説明されています。

    ウィズウィズ
    

    そんな感じ。次に、これは request.get({url: "http://localhost:3000/my-api-controller", qs: {url: url}}, function(error, response, body){ console.log(body); }); を使用します  コメントで述べたように、クエリ文字列を作成するモジュール。

  • 解決した方法 # 2

    querystring に提供されたオブジェクト  またはその便利なメソッドは、データパラメータだけではありません。

    request() を提供するには  クエリ文字列で送信するには、 { url: url } を使用します  オプション。

    <前>ウィズウィズ

  • 解決した方法 # 3

    qs を送信する必要がある場合   request.get('http://localhost:3000/my-api-controller', { qs: { url: url } }, function(error, response, body){ // ... }); へのリクエスト  同様に GET  (他の回答では、 IP を指定できることは言及されていません  変数)、この関数を利用できます:

    <前>ウィズウィズ

    ファイルの先頭にある必須モジュールをお見逃しなく:

    <前>ウィズウィズ

    また、 Domain を使用することもできます。  安全なネットワークを介して通信するためのモジュール。

    port

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ c# - メソッドを呼び出し、引数のプライベートフィールドを直接読み取り/設定すると、カプセル化が解除されますか?