🔶 Requests. POST form-urlencoded
POST використовується для створення ресурсів або надсилання даних на сервер. Дані передаються у тілі запиту, а не у URL (як при GET).
Є різні типи POST-запитів:
🔺 application/x-www-form-urlencoded – дані форми кодуються у вигляді
🔺 application/json – дані у вигляді json
🔺 multipart/form-data – форми з файлами.
Даний приклад демонструє передачу даних форми (form-urlencoded)
Бібліотека автоматично виставляє заголовок відповідно до типу:
Форми часто використовується для авторизації на сайтах: у даних передаються логін і пароль. Але у даному випадку ми передаємо текст і розмір картинки, а сайт повертає нам QR-код картинку.
#http #requests #POST
POST використовується для створення ресурсів або надсилання даних на сервер. Дані передаються у тілі запиту, а не у URL (як при GET).
Є різні типи POST-запитів:
🔺 application/x-www-form-urlencoded – дані форми кодуються у вигляді
param1=value1¶m2=value2🔺 application/json – дані у вигляді json
🔺 multipart/form-data – форми з файлами.
Даний приклад демонструє передачу даних форми (form-urlencoded)
Бібліотека автоматично виставляє заголовок відповідно до типу:
Content-Type: application/x-www-form-urlencoded Форми часто використовується для авторизації на сайтах: у даних передаються логін і пароль. Але у даному випадку ми передаємо текст і розмір картинки, а сайт повертає нам QR-код картинку.
import requests
url = "https://api.qrserver.com/v1/create-qr-code/"
data = {
"data": "Привіт світ!",
"size": "200x200"
}
response = requests.post(url, data=data)
response.raise_for_status()
with open("qr_code.png", "wb") as file:
file.write(response.content)
#http #requests #POST
👍2
🔷 Requests. POST application/json
POST/application-json використовується для надсилання json даних на сервер (REST API)
Замість параметру data треба використовувати параметр json
У цьому випадку бібліотека requests виставляє заголовок:
Реальне API мені не вдалось знайти тому використаємо для прикладу тестове API:
⚠️ Зверніть увагу що статус кодом який повертається може бути 201, а не 200 що відповідає створенню ресурсу.
Основні статус коди
#http #requests #POST
POST/application-json використовується для надсилання json даних на сервер (REST API)
Замість параметру data треба використовувати параметр json
У цьому випадку бібліотека requests виставляє заголовок:
Content-Type: application/jsonРеальне API мені не вдалось знайти тому використаємо для прикладу тестове API:
import requests
url = "https://jsonplaceholder.typicode.com/posts"
json_payload = {
"title": "foo",
"body": "bar",
"userId": 1
}
response = requests.post(url, json=json_payload)
response.raise_for_status()
print(response.status_code)
print(response.json())
201
{'title': 'foo', 'body': 'bar', 'userId': 1, 'id': 101}
⚠️ Зверніть увагу що статус кодом який повертається може бути 201, а не 200 що відповідає створенню ресурсу.
Основні статус коди
#http #requests #POST
👍1
🔶 Requests. POST multipart/form-data
multipart/form-data використовується у формах з надсилання файлів на сервер.
У цьому випадку бібліотека requests виставляє заголовок:
Для прикладу завантажимо наш qrcode з попереднього прикладу на файлообмінник.
Також будемо вдавати браузер Mozilla.
Для відправки файлів використовується словник files з вказанням:
1️⃣ назви файлу
2️⃣ самого файлу
3️⃣ типу файлу
#http #requests #POST
multipart/form-data використовується у формах з надсилання файлів на сервер.
У цьому випадку бібліотека requests виставляє заголовок:
Content-Type: multipart/form-data; boundary=...Для прикладу завантажимо наш qrcode з попереднього прикладу на файлообмінник.
Також будемо вдавати браузер Mozilla.
Для відправки файлів використовується словник files з вказанням:
1️⃣ назви файлу
2️⃣ самого файлу
3️⃣ типу файлу
import requests
with open("qr_code.png", "rb") as file:
url = "https://catbox.moe/user/api.php"
files = {
"fileToUpload": ("qr_code.png", file, "image/png"),
}
data = {
"reqtype": "fileupload",
"userhash": "",
}
headers = {
"User-Agent" : "Mozilla/5.0 "
"(Windows NT 10.0; Win64; x64; rv:142.0)"
"Gecko/20100101 Firefox/142.0"
}
r = requests.post(url, files=files, data=data, headers=headers)
r.raise_for_status()
print(r.text.strip()) # вивод url
https://files.catbox.moe/lmcc82.png
#http #requests #POST
👎1