如何使用Python请求来模仿我在curl中发出的POST请求?

时间:2019-06-13 16:47:07

标签: python python-3.x curl post python-requests

在Mac上,我可以使用curl发送以下请求

import requests
...
resp = requests.post(SEARCH_URL, params={"MAX_FILE_SIZE": "10485760", "url": "https://i.imgur.com/Imox74B.gifv"}, headers={"User-Agent": "curl/7.54.0"})
print(resp)

,这将导致302重定向。如何在Python中复制此功能?我尝试了以下

The Point

但这会导致500的响应,这让我觉得我没有正确地模仿行为。

1 个答案:

答案 0 :(得分:1)

params用于指定查询字符串;您的通话相当于一个SEARCH_URL + '?MAX_FILE_SIZE=10485760&url=https...'之类的URL。您想改用data关键字参数。

resp = requests.post(
    SEARCH_URL, 
    data={
        "MAX_FILE_SIZE": "10485760",
        "url": "https://i.imgur.com/Imox74B.gifv"
    },
    headers={"User-Agent": "curl/7.54.0"},
    allow_redirects=False  # Remove this to follow redirects automatically
)