Как отправить post запрос в Python?

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

от kenya , в категории: Python , 2 года назад

Как отправить post запрос в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

Для того, чтобы отправить post-запрос, нам нужно воспользоваться библиотекой requests

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import requests

response = requests.post('https://httpbin.org/post', json={'key' : 'value'}) # Создаем post-запрос на сайт, на котором можно делать тестовые запросы. В качестве параметров указываем данные в формате json. Для обычного типа данных нужно указывать data вместо json

json_response = response.json() # Переводим наш запрос в json-формат, чтобы его можно было легко анализировать

print(json_response['data']) # Выводим данные, которые мы отправили на сервер
print(json_response['headers']['Content-Type'])

# Вывод :
# {"key": "value"}
# application/json

Как мы видим - сервер получил наши данные.

В качестве отправных данных можно поставить любые значения - данный сервер их примет.

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

от kurt , год назад

@kenya 

В Python есть несколько библиотек, которые можно использовать для отправки POST-запроса, например:

  1. requests:
1
2
3
4
5
6
7
8
import requests

url = 'https://example.com'
data = {'key': 'value'}

response = requests.post(url, data=data)

print(response.status_code)


  1. httplib2:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import httplib2

url = 'https://example.com'
data = {'key': 'value'}
headers = {'Content-type': 'application/x-www-form-urlencoded'}

http = httplib2.Http()
response, content = http.request(url, 'POST', headers=headers, body=data)

print(response.status)


  1. urllib:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from urllib.request import urlopen, Request
import json

url = 'https://example.com'
data = {'key': 'value'}
data = json.dumps(data).encode('utf8')

req = Request(url, data=data, headers={'Content-Type': 'application/json'})
response = urlopen(req)

print(response.status)


В приведенных примерах отправляется POST-запрос на URL "https://example.com" с данными {"key": "value"}. Результатом является ответ сервера, который может быть обработан далее.