Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将response Request.post令牌保存在变量中_Javascript_Node.js_Post_Request_Protractor - Fatal编程技术网

Javascript 将response Request.post令牌保存在变量中

Javascript 将response Request.post令牌保存在变量中,javascript,node.js,post,request,protractor,Javascript,Node.js,Post,Request,Protractor,我只需要使用API中返回的令牌来完成URL。我需要获取response.body并保存在一个变量中,以便在以后使用 我正在使用量角器进行自动化测试,并打开一个URL,我正在使用一个API返回一个令牌,作为URL中的一个参数 描述“TesteAPI”函数{ var请求=要求“请求”; 在量角器、异步函数回调中进行itapi测试{ 让tokenReturn=空; tokenReturn=Request.post{ 标题:{内容类型:application/x-www-form-urlencoded}

我只需要使用API中返回的令牌来完成URL。我需要获取response.body并保存在一个变量中,以便在以后使用

我正在使用量角器进行自动化测试,并打开一个URL,我正在使用一个API返回一个令牌,作为URL中的一个参数

描述“TesteAPI”函数{ var请求=要求“请求”; 在量角器、异步函数回调中进行itapi测试{ 让tokenReturn=空; tokenReturn=Request.post{ 标题:{内容类型:application/x-www-form-urlencoded}, 网址:https://corpqa.sts.ford.com/adfs/oauth2/token, 表格:{ 授予类型:'客户端凭据', 客户id:'ad9cdf61-e863-4606-a90a-cf7b7141234', 客户机密:“QmjeT5UZ0N1M0jOEcggrxgFzw-vrZY2UphAy21d5”, 资源:'urn:age:pcf:sss:dev', } },错误,响应,正文=>{ 如果错误{ 返回console.direrror; } resp=JSON.parseresponse.body; console.loginside:+resp.access\u令牌; 回调; }; console.logoutside:www.example.com/?token=+tokenReturn; }; };//------------- 结束描述 在控制台上给我看

外部:

www.example.com/?token=[object Object]
内部:

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IldzZks3Q2FtMDZKY3dkR1Z6a2NiYVUzd21wZyJ9.eyJhdWQiOiJ1cm46YWdlOnBjZjpzdGY6ZGV2IiwiaXNzIjoiaHR0cHM6Ly9jb3JwcWEuc3RzLmZvcmQuY29tL2FkZnMvc2VydmljZXMvdHJ1c3QiLCJpYXQiOjE1NzMyMzIzNjYsImV4cCI6MTU3MzIzNTk2NiwiYXBwdHlwZSI6IkNvbmZpZGVudGlhbCIsImFwcGlkIjoiYWQ5Y2RmNjEtZTg2My00NjA2LWE5MGEtY2Y3YjcxNDE4OTQ1IiwiYXV0aG1ldGhvZCI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd3MvMjAwOC8wNi9pZGVudGl0eS9hdXRoZW50aWNhdGlvbm1ldGhvZC9wYXNzd29yZCIsImF1dGhfdGltZSI6IjIwMTktMTEtMDhUMTc6MDQ6MjYuMTU5WiIsInZlciI6IjEuMCJ9.kuVfmgvN7_t4h2LB5o6dzTV2hngdapMrWFRPANISg5ayUnqeBMKHI5PWvISddfZ2qjO7kSPXlYVffhjrBhqAxY75EAhLX8hAmHDm_2jl49prtnsnqV-l-zhFaqCyfhEcgtVCRE_GX6EON2pewsX09Vdbn_2uHvh5wcGdWCnontzkZdrf__X8-tuE5R7tHrtge0ZXMdx5bCF7INKzA1YolTwxOOiYNVvZFPDKLRwa4VUf_qTKN5BmLisRVN4gmnTzGTPXjXlHZApRwJAbXR4V7VhtVQ6VcjHuyYIpp_rK0K7kQjwu0FLpE1FHZTNRwvXNI1VqyhGaanx2bM_59NyDgg
我只希望外部结果与内部结果相等。 我做了一些更改,但结果改为未定义对象。

可能使用承诺

例如:

 function requestToServer(){
    return new Promise((resovle, reject) => {
        Request.post({
                "headers": { "content-type": "application/x-www-form-urlencoded" }, 
                "url": "https://corpqa.sts.ford.com/adfs/oauth2/token",
                "form": {
                    "grant_type":'client_credentials',
                    "client_id":'ad9cdf61-e863-4606-a90a-cf7b7141234',
                    "client_secret":'QmjeT5UZ0N1M0jOEcggrxgFzw-vrZY2UphAy21d5',
                    "resource":'urn:age:pcf:sss:dev',
                }
            }, (error, response, body) => {
            if (error) {
                return console.dir(error); 
            }
            resp = JSON.parse(response.body);
            console.log("inside: " + resp.access_token);
            resovle(resp.access_token);
            callback();
        });
    });
 }

 describe('TEste API', function(){
        var Request = require('request');
        it("api Testing in protractor", async function (callback) {

            let tokenReturn = await requestToServer();
            console.log("outside: www.example.com/?token=" + tokenReturn);
        });                                                                     
    });//------------------------- end describe

嗨,朋友!你解决了我的问题,谢谢!我对组织做了一些改变,现在它开始工作了。1-我删除了回调函数和参数2-我将var Request=require'Request';在requestToServer函数之前。非常感谢。我现在需要学习更多关于承诺的知识!!