gpt4 book ai didi

javascript - Node.js http 和 bing 搜索 api

转载 作者:行者123 更新时间:2023-11-30 05:34:51 26 4
gpt4 key购买 nike

我正在尝试使用 Bing 搜索 API 返回 JSON 字符串。我首先尝试根据 Azure 的探索网站 ( https://datamarket.azure.com/dataset/explore/5BA839F1-12CE-4CCE-BF57-A49D98D29A44 ) 使用以下 URL:

'https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27web%27&Query=%27NGI%20SPA%27&Market=%27en-US%27'

之后,我发现了一个SO线程Using the new Bing API (nodejs)这建议我使用以下形式的网址:

https://user:<YourDefaultAccountKey>@api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27leo%20fender%27&Market=%27en-US%27&$top=50&$format=JSON

这两个返回状态 401(身份验证失败):

STATUS: 401
HEADERS: {"content-type":"application/json; charset=utf-8","server":"Microsoft-IIS/8.0","jsonerror":"true","x-powered-by":"ASP.NET","access-control-allow-origin":"*","access-control-allow-credentials":"false","access-control-allow-headers":"Authorization, DataServiceVersion, MaxDataServiceVersion","access-control-expose-headers":"DataServiceVersion, MaxDataServiceVersion","access-control-allow-methods":"GET, POST, OPTIONS","access-control-max-age":"604800","date":"Wed, 02 Jul 2014 17:23:29 GMT","content-length":"91"}
BODY: {"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}

我还尝试了其他各种 URL 组合,但均无济于事。我的代码如下:

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

var serviceRootURL = 'https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27web%27&Query=%27NGI%20SPA%27&Market=%27en-US%27'
var params = 'hi';

var dataURL = url.parse(serviceRootURL);

var post_options = {
hostname: dataURL.hostname,
port: dataURL.port || 80,
path: dataURL.path,
method: 'GET',
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Content-Length': params.length
}
};

var req = http.request(post_options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {

console.log('BODY: ' + chunk);

});

});

req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('data\n');
req.write('data\n');
req.end();

知道为什么我会遇到身份验证失败吗?

最佳答案

您可以使用this module封装了请求,因此您可以使用它像:

var Bing = require('node-bing-api')({ accKey: "your-account-key" });

Bing.web("leo fender", function(error, res, body){
console.log(body);
},
{
top: 50,
market: 'en-US'
});

它适用于 Azure 版本。您只需更换您的帐户 key 即可。

关于javascript - Node.js http 和 bing 搜索 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com