Как мне использовать запросы Python для имитации POST-запроса, который я делаю в curl? - PullRequest
0 голосов
/ 13 июня 2019

На моем Mac я могу отправить следующий запрос с помощью curl

curl -v -X POST -d MAX_FILE_SIZE=10485760 -d 'url=https://i.imgur.com/Imox74B.gifv' http://karmadecay.com/index/

, и это приведет к перенаправлению 302.Как мне дублировать эту функциональность в Python?Я попробовал следующее

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)

Но это приводит к ответу 500, что заставляет меня думать, что я не подражаю поведению должным образом.

1 Ответ

1 голос
/ 13 июня 2019

params - для указания строки запроса;Ваш звонок эквивалентен URL-адресу типа SEARCH_URL + '?MAX_FILE_SIZE=10485760&url=https...'.Вместо этого вы хотите использовать ключевое слово 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
)
...