代码之家  ›  专栏  ›  技术社区  ›  napi15

如何获取nodeJS服务器使用Bottle发送的python请求数据

  •  0
  • napi15  · 技术社区  · 5 年前

    如何在python中获取和打印nodeJS发送的数据?

    我在这个nodeJs模块中使用了ExpressJS

    app.use("/py/sendomodel",  function (req, res, next) {
         var oData = {
            "Test":"FirstData"
         }
        var options = {
            method: 'POST',
            data : oData,
            url: 'https://xxx.cfapps.us10.hana.ondemand.com/mprs/omodel',
            headers: {
                'cache-control': 'no-cache',
                /*'Content-Type' :'application/json',*/
                Connection: 'keep-alive',
                'accept-encoding': 'gzip, deflate',
                Host: 'xxxx.cfapps.us10.hana.ondemand.com',
                'Cache-Control': 'no-cache',
                Accept: '*/*',
                'User-Agent': 'PostmanRuntime/7.15.0'
            }
        };
        return request(options, function (error, response,body,data) {
            if (error) throw new Error(error);
        });
    });
    

    现在我被困在这里了,如何打印发送的数据?这是python模块

    from bottle import route, run, post, request, response
    @route('/mprs/omodel', method='POST')
    def profile():
        #I tried all these without any success , I want to print the oData that I have sent via nodeJs
        #request.body.read().decode('utf8')
        temp = request.body.read()
        #temp = request.json
        #sol = request.forms
        print(temp)   
        #jsonData = json.load(request.body)
        #return jsonData
        return(temp)
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   eatmeimadanish    5 年前

    您有两件事要看,第一件是查询,第二件是表单数据。我把两者合并以防万一。在你的例子中,身体是空的。因为没有真正的HTML。

    from bottle import route, run, post, request, response
    
    def merge_dicts(*args):
        result = {}
        for dictionary in args:
            result.update(dictionary)
        return result
    
    @post('/mprs/omodel')
    def profile():
        payload = merge_dicts(dict(request.forms), dict(request.query.decode()))
        print(payload)
        print(payload['Test'])
        return payload