【问题标题】:Postman is seemingly ignoring my POST in the pre-request邮递员似乎在预请求中忽略了我的 POST
【发布时间】:2020-03-03 06:32:46
【问题描述】:

我正在尝试设置 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 作为预请求,我需要做些什么特别的事情吗? 任何帮助将不胜感激。

【问题讨论】:

    标签: postman postman-pre-request-script


    【解决方案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 控制台,您将在那里获得所有信息,包括请求、响应和错误(如果有)。

    【讨论】:

      【解决方案2】:

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

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

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

      我建议将您的请求稍微更改为以下内容,应该没问题:

      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);
      });
      

      【讨论】:

      • 比我的答案更好:)
      • 完美 - 使用控制台,我可以看到返回的内容,正如您提到的那样,它是 400。我进行了更改,然后得到了 415。经过一番玩弄后,我意识到我需要添加 Accept 和 Content-Type 标头,然后它就起作用了。非常感谢。 :)
      猜你喜欢
      • 2013-06-01
      • 2017-12-30
      • 2016-11-11
      • 2018-11-20
      • 2021-10-28
      • 2016-09-30
      • 2016-03-16
      • 2014-02-03
      • 2012-03-11
      相关资源
      最近更新 更多