首页 > 解决方案 > 在节点上执行在 Postman 上测试的等效请求

问题描述

我无法在经过 Postman 测试和工作的节点上发出请求。我尝试的所有操作都会返回 302 状态码。

这是我想要做的请求,它在邮递员上执行得很好:

1

这是我的尝试之一:

function ListaCidades(estado) {
    return new Promise((resolve, reject) => {

        request({
            url: "http://www1.caixa.gov.br/Simov/carregaListaCidades.asp",
            method: "POST",
            body:     "cmb_estado=MG&cmb_cidade=&cmb_tp_venda=0&cmb_tp_imovel=Selecione&cmb_area_util=Selecione&cmb_faixa_vlr=Selecione&cmb_quartos=Selecione&cmb_vg_garagem=Selecione"
        }, function callback(error, resp, body) {
            if (error)
            {
                reject(error);
                process.exit(1);
            }

            resolve(resp.statusCode);
        })
    });
}

我得到 HTTP 302 作为状态码和一个空的正文。

怎么了?

标签: node.jshttppostweb-scrapingrequest

解决方案


从表面上看 302 错误,这意味着 URL 上有一个(临时)重定向。以下 stackoverflow 主题讨论了如何处理这种情况:

您如何在 Node.js 中遵循 HTTP 重定向?

使用 node.js 请求跟随重定向

就 Postman 而言,它会自动跟随重定向。即使有一个停止它的选项,它似乎在桌面版本上不起作用!

在此处输入图像描述

重定向处理可以在下面的浏览器控制台中看到。所以你的代码需要处理这种情况。 在此处输入图像描述


推荐阅读