6

ブラウザを使用してリクエストする場合:

localhost:2013/ExternalServer/getfilebyname?filename=getStatus.json

次に、ブラウザーは getStatus.json をダウンロード フォルダーにダウンロードします。

私の NodeJS プロジェクトでは、getStatus.json ファイルをダウンロードしたいので、次のように作成しました。

ダウンロード.js

var http = require('http');
var fs = require('fs');

function getFile (){

  var file = fs.createWriteStream("./../lib/user.json");
  var req = http.get("http://localhost:2013/ExternalServer/getfilebyname?filename=getStatus.json", function(res) {
    res.pipe(file);
});
}

getFile();

しかし、私が実行すると:node download.jsシステムが戻ります

<html><head><title>Apache Tomcat/8.0.0-RC1 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 401 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>This request requires HTTP authentication.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/8.0.0-RC1</h3></body></html>

修正方法は?

宜しくお願いします

4

2 に答える 2

6

次のエラー応答が表示されます。

このリクエストには HTTP 認証が必要です

ヘッダーに承認情報を追加することを提案しています。お気に入り:

var options = {
    host: 'localhost',
    port: 2013,
    path: '/ExternalServer/getfilebyname?filename=getStatus.json',
    headers: {
     'Authorization': 'Basic ' + new Buffer(uname + ':' + pword).toString('base64')
   }         
};

request = http.get(options, function(res) {
   res.pipe(file);
});

プロキシの場合は、代わりに次のヘッダーを使用できます。

Proxy-Authorization
于 2013-08-18T08:22:47.150 に答える
0

サーバーは、この方法でファイルにアクセスできるようにする前に、ユーザー名とパスワードを必要とするか、別の承認メカニズムを必要とします。

node.js でリクエストを行うときにユーザーとパスワードを指定する方法については、基本認証がある場合に Node.js で http.client を使用する方法を参照してください。

これが問題である可能性があることをどのように知ることができますか?

システムの 2 つの興味深い文字列が返されます。

HTTP Status 401

This request requires HTTP authentication

ウィキペディアから: HTTP ステータス コードのリスト

401 Unauthorized 403 Forbidden に似ていますが、特に認証が必要で、失敗したか、まだ提供されていない場合に使用します。[2] 応答には、要求されたリソースに適用可能なチャレンジを含む WWW-Authenticate ヘッダー フィールドが含まれている必要があります。基本アクセス認証およびダイジェスト アクセス認証を参照してください。

別の可能性として、サーバーが 403 ではなく 401 を送信するように設定されている可能性がありますが、ユーザー名やパスワードを実際には受け入れません。

于 2013-08-18T08:17:24.513 に答える