1

我正在尝试从服务器脚本进行 WebAPI 调用,但出现身份验证错误:

这就是我的 server.js 的样子:

var app = require('http').createServer()
  , io = require('socket.io').listen(app)
  , fs = require('fs')
  , moment = require('moment')
  , request = require('request'); //https://github.com/mikeal/request

app.listen(8000, function () {
    console.log('server started');
    doSomethingOnServerStart();
});


function doSomethingOnServerStart()
{
    console.log('Getting something from server');

    request.get({
        url: 'http://localhost:63213/Api/MyAPI/GetSomething',

    },
        function (error, response, body) {
            console.log(response.statusCode);
            if (response.statusCode == 200) {

                console.log('data received from server');

            } else {
                console.log('error: ' + response.statusCode);
                console.log(body);
            }
        });

}

我正在使用 Mikeal 的请求库进行 WebAPI 调用。在 HTTP 身份验证部分(https://github.com/mikeal/request#http-authentication)中,它说将用户名和密码作为“哈希”传递,但没有说明我如何生成该哈希。

我有点卡住了,不知道如何继续。

4

1 回答 1

1

为了解决您最初的问题,从文档来看,您似乎需要进行额外的链式函数调用:

request.get('http://some.server.com/').auth('username', 'password', false);

或者像这样

request.get('http://some.server.com/', {
  'auth': {
    'user': 'username',
    'pass': 'password',
    'sendImmediately': false
  }
});

在第二种情况下,它提到必须具有auth哈希值(如上所述)。您似乎没有在代码中的任何位置发送用户名或密码...

于 2013-07-09T20:13:47.340 回答