当前位置: 首页 > 知识库问答 >
问题:

节点请求vs python会话

万志专
2023-03-14

我有一个工作的node.js脚本,它使用node.js请求模块编写。 我试图用会话模块将这个脚本转换为python。 我是python的新手,我按照python文档中提到的那样学习了它。 但我正在努力让我的代码正常工作。 我遇到的问题是用会话模块在后续请求中发送cookie值。 根据文档,它正在保存cookie,并在之后的任何请求中自动发送它们。 但是

下面是我的工作node.js脚本

const request = require('request');
const fs = require('fs');

const getOptions = {
    jar:true,
    followAllRedirects:true,
    method:'GET',
    url:'https://dummyurl.com'
};

request.get(getOptions,(err,response,html)=>{
    if(err){
        console.log('error in request');
        console.log(err);
    }
    else {

        const postOptions = {
            jar:true,
            followAllRedirects: true,
            method:'POST',
            url:'https://dummyurl.com',
            form:{
                'data':{
                    'page':2
                }
            }

        };

        request.post(postOptions,(err,response,html)=>{
            if(err){
                console.log('post err');
                console.log(err);
            }
            else {
                fs.writeFileSync('pyres.html',html,'utf8');
            }
        })
    }
});

这是我对上面脚本的python转换

s = requests.Session()
url= 'https://dummyurl.com'
response = s.get(url)
print(response.cookies)
data_url = 'https://dummyurl.com/'
postData = {
    "data":{
        "page":2
    }
}

resultResponse = s.post(data_url,data=postData)
print(resultResponse.content)

谁能指出这个代码中有什么错误吗?

共有1个答案

司徒钱青
2023-03-14

实际上问题出在数据格式上。 在nodejs中,我这样发布它

{'data':{'page':2} }

但在python中应该这样转换

{
    'data[page]': '2'
}

我不确定为什么它不能在python中正常的json格式下工作

 类似资料:
  • 问题内容: 如何使用与以下代码等效的node.js发出Http请求: 问题答案: 使用http客户端。 遵循以下原则:

  • 我正在尝试在后端节点中发出http请求。js web app。我可以在前端web javascript文件上发出成功的完整http请求,如下所示: 并遵循本指南:https://nodejs.dev/learn/make-an-http-post-request-using-nodejs 我一直试图在node中发出相同的请求。js后端: 但运行上述请求会导致以下错误: 我设置url/path设置的

  • 尝试使用PUT请求更新数据。但是,数据没有更新和返回邮递员中的以前的数据。 邮递员提出要求: 邮递员回复: 我也尝试过使用findByIdAndUpdate。没有得到结果。任何帮助都将不胜感激。 控制器: 路由器:

  • 我正在用nodejs和MongoDB创建我的第一个API,我想创建一个类似“localhost:3050/user/name”的GET请求。所以我建立了这个: ...

  • 我在循环中的节点JS中发送这样的GET请求 由于响应是异步的,是否可以在响应中获取原始请求URL? 谢谢!

  • 我正在使用Mikeal的请求(https://github.com/mikeal/request)向服务器发出https请求。但是,我一直收到CERT_HAS_EXPIRED的授权错误。 我已经尝试将严格SSL设置为true和false,两者输出相同的CERT_HAS_EXPIRED错误。是什么导致了这个问题,有没有办法在nodejs中修复它?

  • 我有两个节点js应用程序,一个发送post请求,如下所示: 另一个是试图用表达式和正文解析器来处理它: 问题是在接收端我无法检索我正在寻找的json数据。有人知道我错过了什么吗?

  • 我知道Javascript,但对NodeJS非常陌生。我希望在代码中的任何位置,即server.js之外的位置,重用HTTP请求。请看一看: server.js