簡體   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