Перемещение urllib.request.urlopen в запросы - PullRequest
0 голосов
/ 27 мая 2020

У меня есть следующая строка в устаревшем коде, которую я хотел бы изменить, чтобы использовать requests:

response = urllib.request.urlopen(url, data)

Я просматривал документацию и пытался понять выяснить, какой метод HTTP используется urlopen, но я ничего об этом не вижу. Я изменил эту строку на следующую, как я понял изначально с сервера:

response = requests.post(
    url,
    data=data,
    verify=False,
    headers={"Content-type": "application/x-www-form-urlencoded"},
)

Когда я запускал системные тесты, я заметил, что urlopen также выполнял GET запрашивает, не поддерживается ли POST (или наоборот). Я правильно понимаю? Есть ли для этого эквивалент в запросах?

Мне нужно перейти к запросам, чтобы иметь возможность использовать Mocker() в моих тестах.

1 Ответ

1 голос
/ 27 мая 2020

Согласно документации urllib , метод (GET / POST), который вы используете, определяется следующим образом:

  • "По умолчанию" GET ", если данные None или "POST" в противном случае. "

Поскольку пакет запросов не имеет функции, соответствующей urlopen, которая может выполнять либо GET, либо POST, простой (упрощенный c?) способ при переходе с urlopen следует использовать requests.get, когда data is None, и requests.post, если это не так.

...