【问题标题】:Send post request with params in python在 python 中发送带有参数的 post 请求
【发布时间】:2020-11-18 21:08:17
【问题描述】:

我已经使用 werkzeug 创建了一个发布路线。

http://localhost:8000/v1/api//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 打印为

Expected is:
88888888888888888888888888888888888888888888888888888888888
1

Actual is:
88888888888888888888888888888888888888888888888888888888888
<serial_id>

【问题讨论】:

  • &lt;serial_id&gt;URL 的字面意思,你需要查看 request 对象。
  • 网址应该是这样的url = 'http://localhost:8000/v1/api/'+str(serial_id)+'/data' # serial_id is a dynamic value. 然后res = requests.post(url , data= json.dumps({'data':'data'}), params={'serial_id':1})然后响应将print(res.text)
  • 当我点击localhost:8000/v1/api/1/data 时,我得到的序列号为 1。我需要一种将 设置为 1 的方法。
  • werkzeug.palletsprojects.com/en/1.0.x/routing 这就是我们在 werkzeug 中定义 URL 的方式

标签: python python-3.x python-requests werkzeug


【解决方案1】:

正如@Md Jewele Islam 在 cmets 中所述,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)

【讨论】:

    猜你喜欢
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 2019-12-04
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多