首页 > 解决方案 > Nodejs,http post json

问题描述

这是一个示例帖子,我想在我的 Nodejs 服务器中执行以获取 ClientID 和机密。

请求示例:

curl --request POST \
  --url https://api.opskins.com/IOAuth/CreateClient/v1/ \
  --header 'authorization: Basic {{AUTH_HASH}}' \
  --data name=TestApp2 \
  --data redirect_uri=http://localhost:1234

响应返回 JSON 结构如下:

{
    "status": 1,
    "time": 1535408581,
    "response": {
        "secret": "$nGwYVda@@PErKAUpG#kHQ&YA1L)A*X1",
        "client": {
            "client_id": "ff371b045307",
            "name": "TestApp2",
            "redirect_uri": "http://localhost:1234",
            "time_created": 1535407757,
            "has_secret": true
        }
    }

我正在尝试请求:

const request = require('request');

var headers = {
        'authorization': 'Basic ***my-api-key****'
    };

    var dataString = 'name=TestApp2&redirect_uri=http://localhost:5000';

    var options = {
        url: 'https://api.opskins.com/IOAuth/CreateClient/v1/',
        method: 'POST',
        headers: headers,
        body: dataString
    };

    function callback(error, response, body) {

            console.log(body);

    }

    request(options, callback);

但得到这样的错误输出:

{"status":401,"time":1540115259,"message":"API Key Required"}

我一直在尝试不同的代码和中间件,但无法做到。我的测试也适用于 Postman。我需要帮助才能发布并获取我的 client_id 和秘密。

标签: node.jspostoauthrequesthttp-post

解决方案


我找到了一个方法。这对我来说真的很棘手。我需要使用我的 API 密钥和客户端 ID。波纹管代码有效。非常感谢维托马迪奥!

我使用了来自 npm 的reqclient 。

这是我的代码

   var client = new RequestClient({
        baseUrl:"https://api.opskins.com/IOAuth/CreateClient/",
        debugRequest:true, debugResponse:true,
        auth: {
            user:"***My_apikey****",

        }
    });

    var resp = client.post("v1/", {"name": "testApp2", "redirect_uri":"http://localhost:5000/"},{headers: {"authorization":"Basic **my_clientID"}}).then(response => {
       // console.log(response);
    });

我也真的很居里,想知道我怎么能按要求做到这一点。


推荐阅读