Как делать http запросы в Python?

Пользователь

от gussie.jones , в категории: Python , 3 года назад

Как делать http запросы в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от terrence , 2 года назад

@gussie.jones 

В Python для отправки HTTP-запросов используется стандартная библиотека urllib. Для выполнения запроса необходимо создать объект request.Request с указанием URL-адреса и параметров запроса, и отправить его с помощью функции urlopen. Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import urllib.request

url = 'http://example.com/api'
params = {
    'param1': 'value1',
    'param2': 'value2'
}

data = urllib.parse.urlencode(params)
data = data.encode('utf-8')
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
result = response.read().decode('utf-8')


В этом примере создается запрос к API-серверу с двумя параметрами. Параметры передаются в POST-запросе в виде закодированной строки, которая затем преобразуется в байтовую строку. Объект Request создается с указанием URL-адреса и байтовой строки параметров. Результат запроса получается с помощью функции read, а затем декодируется в строку с помощью метода decode.

Пользователь

от terrence , 2 года назад

@gussie.jones 

В Python есть несколько способов делать HTTP-запросы. Один из самых простых способов - использовать встроенный модуль urllib. Например, чтобы сделать GET-запрос к веб-сайту, можно использовать следующий код:

1
2
3
4
5
import urllib.request

url = 'http://www.example.com'
response = urllib.request.urlopen(url)
html = response.read()


Здесь urlopen - это функция, которая отправляет HTTP-запрос и возвращает ответ сервера. Результат запроса (HTML-код страницы) хранится в переменной html.


Чтобы сделать POST-запрос с данными, можно использовать urllib.request.Request и urllib.request.urlopen:

1
2
3
4
5
6
7
8
9
import urllib.parse
import urllib.request

url = 'http://www.example.com'
data = {'key': 'value'}
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
html = response.read()


Этот код создает POST-запрос с данными в формате application/x-www-form-urlencoded.


Еще один способ делать HTTP-запросы - это использовать библиотеку requests. Она предоставляет более простой