运行 用于字符串化请求 body 的预请求脚本

Run prerequest script to stringify body of the request

我正在使用 post 人发送 post 请求,其中 body 为 form-data,其中包含文件和文本。见下图:

我想 json.stringify 整个 body 但我不知道如何在 pre-request 脚本中执行此操作。由于环境变量只能是 body 的一部分,而且文件使它变得更加棘手。

我不确定我是否理解这个问题。在邮递员中,请求是一个 JavaScript 对象。如果您尝试将请求字符串化,我假设您正在尝试获取此:

propertyOne=valueOne&propertyTwo=ValueTwo

其中:

const request = {
    propertyOne: 'valueOne',
    propertyTwo: 'ValueTwo'
};

简单的方法就是迭代对象的属性并写入字符串:

function stringifyRequest(object) {
    let resultString = '';
    for (var property in object) {
        if (object.hasOwnProperty(property)) {
            let tempString = `${property}=${object[property]}`;
            resultString = resultString ? `${resultString}&${tempString}` : tempString;
        }
    }
    return resultString
}

现在,如果你想得到你正在上传的文件的二进制文件,那将是不可能的。如 this thread 所示:

We don't give access to the contents of the files in pre-request scripts, for a few reasons.

  1. We want to delay loading file contents to right before the request is sent.
  2. The request body is not actually resolved until the pre request scripts are completed. So even if we wanted to we can't give the actual body of the request in pre-request scripts.

他们最终可能会改变这一点,但我找不到任何迹象。此线程中的一位用户建议使用 insomnia,您可以查看它是否更符合您的需求。