Node.JS无效的URI错误:使用查询参数的GET请求

时间:2019-07-25 12:31:42

标签: javascript node.js json

我正在尝试使用目标应用程序名称hexion的其余服务进行查询以查找帐户。 当我运行时,它给出了无效的uri错误。 我在邮递员中测试的网址如下 https://ekaa-dev1.fa.us6.oraclecloud.com/crmRestApi/resources/11.13.18.05/accounts?q=OrganizationName = Hexion

在邮递员中,我也得到了回应。 但是我感觉在代码中的某个地方我正在做一些语法错误,但是找不到它

//nodejs v4.2.6

console.log("Hello, World!");
var Request = require("request");
var serviceUserName="msonawane@gmail.com";
var password="Welcome01";
var personalDataURL="https://ekaa-dev1.fa.us6.oraclecloud.com/crmRestApi/resources/11.13.18.05/accounts";
var option1 = {
        uri:  personalDataURL,
        qs: {
            q:{OrganizationName:"Hexion"}
             },
        headers: {
            "Authorization" : auth,
            "Content-Type": 'application/json',
            "Accept":'application/json'
        }

    };

var auth = `Basic ` + new Buffer(serviceUserName+`:`+password).toString(`base64`);

Request.get(option1, { json: true },
     (error, response, body) => {
         console.log(response);
             //console.log(response.url);
         if (error) { return console.log(body,error); }
  console.log(body.url);
  console.log(body.explanation);
     });

我希望它在成功获取后能够返回响应 请让我知道错误,我已经更改了身份验证凭据,因此一旦您发现需要更正的内容,请让我输入上述代码,我将尝试使用正确的凭据并更新您

1 个答案:

答案 0 :(得分:0)

request.get方法期望第一个参数为url,但是您传递的是options1 obj,它找不到url,因此给出错误“无效的uri /”。 您可以将查询参数附加到url或使用querystring npm

var personalDataURL= "https://ekaa-dev1.fa.us6.oraclecloud.com/crmRestApi/resources/11.13.18.05/accounts?q=OrganizationName=Hexion"
    request({
        headers: {
                "Authorization" : auth,
                "Content-Type": 'application/json',
                "Accept":'application/json'
            },
        uri: personalDataURL,
        method: 'GET'
      }, function (err, res, body) {
        //it works!
      });

有关更多详细信息,请参见request