邮递员似乎在预请求中忽略了我的POST

时间:2019-11-06 17:45:07

标签: postman postman-pre-request-script

我试图建立一个DELETE调用,但是要做到这一点,我首先需要创建要删除的数据,因此我试图在预请求中调用POST。我已经将POST作为常规请求运行,并且工作正常,但是在预请求中似乎只是被忽略了。我知道这一点是因为我可以将URL更改为不起作用的内容,这没有区别,也不会引起错误。

这是我的预定要求:-

pm.sendRequest({
    url: "http://someurl/test",
    method: 'POST',
    header: {
        'Authorization': 'Basic Tmlfefe89899eI='
    },
    body: {     
    "ClientId": 594,
    "Name": null,
    "Disabled": false
    }, function (err, res) {
        console.log(res);
    }
});

使用POST作为预先请求,我需要做些特别的事情吗? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

似乎很奇怪,什么都没发生,可能会返回400,但是您只会在Postman Console中看到它。

您可以通过点击此图标打开它,您将在应用程序的左下方找到它:

Postman

这是控制台中的示例视图,第一个请求的时间旁边的图标将显示已使用pm.sendRequest()函数:

Postman

我建议只将您的请求更改为以下内容,这样就可以了:

pm.sendRequest({
    url: 'http://someurl/test',
    method: 'POST',
    header: {
        'Authorization': 'Basic Tmlfefe89899eI=',
        'Content-Type': 'application/json'
    },
    body: {
        mode: 'raw',
        raw: JSON.stringify({ ClientId: 594, Name: null, Disabled: false})
    }
}, function (err, res) {
    console.log(res);
});

答案 1 :(得分:1)

有一个技巧可以获取请求前脚本的请求信息。

将请求保存在一个单独的配置中(临时),然后导出该集合。然后使用IDE或记事本检查json集合,您将在那里获取所有信息,将其直接用于您的请求。

使用问题中的给定信息,这是您的请求前脚本的样子,

pm.sendRequest({
    url: "http://someurl/test",
    method: "POST",
    header: [{
        "key": "Authorization",
        "value": "Basic Tmlfefe89899eI=",
        "type": "text",
    },
    {
        "key": "Content-Type",
        "name": "Content-Type",
        "value": "application/json",
        "type": "text"
    }],
    body: {
        mode: 'raw',
        "raw": ""raw": "{\n    \"ClientId\": 594,\n    \"Name\": null,\n    \"Disabled\": false\n}"
    }
}, function(err, res) {                
     console.log(res);    
});

还要检查Postman控制台,您将在那里获得所有信息,包括请求,响应和错误(如果有)。