繁体   English   中英

在 python 中发送带参数的 post 请求

[英]Send post request with params in python

我使用 werkzeug 创建了一个 post 路由。

http://localhost:8000/v1/api/<serial_id>/data

def url_map():
    tenants = [
        Submount(
            "/<serial_id>",
            [
                Rule(
                    "/data",
                    methods=["POST"],
                    endpoint=getData,
                )
            ],
        )
    ]

    api = [Submount("/api", api)]

    rules = [Submount("/v1", api)]
    return Map(rules, strict_slashes=False)


   def getData(self, request, serial_id):
        logger.error('88888888888888888888888888888888888888888888888888888888888')
        logger.error(serial_id)
        return {'status': 'ok'}

我正在向路径发送请求:

requests.post('http://localhost:8000/v1/api/<serial_id>/data',
                                                data= json.dumps({'data':'data'}),
                                                params={'serial_id':1}
                                                )

问题不是打印 1,而是将 serial_id 打印为 <serial_id>。

Expected is:
88888888888888888888888888888888888888888888888888888888888
1

Actual is:
88888888888888888888888888888888888888888888888888888888888
<serial_id>

正如@Md Jewele Islam 在评论中指出的那样, url变量必须类似于:

url = 'http://localhost:8000/v1/api/{}/data'.format(str(serial_id))

并且请求必须像这样发送:

import json
res = requests.post(url , data= json.dumps({'data':'data'}), params={'serial_id':1})

所以你可以通过以下方式打印响应:

print(res.text)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM