- Метод post() модуля requests в Python
- Что такое HTTP-запрос в Python?
- Ключевые моменты POST-запроса
- Что такое модуль запросов Python?
- Как использовать модуль requests в Python?
- Что такое метод requests.post() в Python?
- Синтаксис
- Параметры
- Python Post JSON using requests library
- Steps to Build a JSON POST request
- Approach 1: Using json parameter
- Approach 2: By setting header information
- Test Your JSON POST request using postman before executing
- About Vishal
- Related Tutorial Topics:
- Python Exercises and Quizzes
- Python requests: POST Request Explained
- Understanding the Python requests POST Function
Метод post() модуля requests в Python
Метод post() используется, когда мы хотим отправить какие-то данные на сервер. Затем данные сохраняются в базе данных.
Что такое HTTP-запрос в Python?
POST отправляет данные на сервер для создания ресурса. Данные, отправленные на сервер с запросом POST, хранятся в теле запроса HTTP.
Ключевые моменты POST-запроса
- Запросы POST не имеют ограничений по длине данных. Это может быть все, что вы хотите.
- POST-запросы не сохраняются в истории браузера.
- Никогда не кэшируются.
- Не могут быть добавлены в закладки.
Что такое модуль запросов Python?
Requests — это HTTP-библиотека под лицензией Apache2, написанная на Python, которая помогает сделать HTTP-запросы более простыми и удобными для человека.
Как использовать модуль requests в Python?
Вам необходимо установить модуль запросов в вашей системе, чтобы использовать его в Python. Чтобы установить модуль requests, выполните следующую команду.
Чтобы использовать Pipenv для управления пакетами Python, вы можете запустить следующую команду.
После установки библиотеки запросов вы можете использовать ее в своем приложении. Например, импорт запросов выглядит следующим образом.
Что такое метод requests.post() в Python?
Чтобы создать запрос POST в Python, используйте метод request.post(). Метод запросов post() принимает URL-адреса, данные, json и аргументы в качестве аргументов и отправляет запрос POST на указанный URL-адрес.
Вы можете отправить данные вместе с post-запросом.
Синтаксис
Параметры
Параметр | Описание |
---|---|
url | обязателен, URL-адрес запроса. |
data | необязателен. Это может быть словарь, список кортежей, байты или файловый объект для отправки по указанному url. |
json | необязательно. Это объект JSON для отправки по указанному URL. |
files | необязательно. Это словарь файлов для отправки по указанному url. |
allow_redirects | необязательно. Это логическое значение для включения/отключения перенаправления. Значение по умолчанию True (разрешает перенаправление) |
auth | необязательно. Это кортеж для включения безопасной аутентификации по протоколу HTTP. По умолчанию None |
cert | необязательно. Это строка или кортеж, указывающий файл сертификата или ключ. По умолчанию None |
cookies | необязательно. Это словарь файлов cookie для отправки по указанному url-адресу. По умолчанию None |
headers | необязательно. Это словарь HTTP-заголовков для отправки по указанному URL. По умолчанию None |
proxies | необязательно. Это словарь протокола для URL-адреса прокси-сервера. По умолчанию None |
stream | необязательно. Логическое значение показывает, должен ли ответ быть немедленно загружен (False) или передан потоком (True). Значение по умолчанию False |
timeout | необязательно. Это кортеж, или число, указывающее, сколько секунд требуется для ожидания, пока клиент установит соединение и отправит ответ. Аргумент по умолчанию равен None, что означает, что запрос будет продолжаться до тех пор, пока соединение не будет закрыто или потеряно. |
verify | необязательно. Это логическое значение или строковое указание для проверки наличия TLS-сертификата сервера или нет. Значение по умолчанию True |
Python Post JSON using requests library
In this article, I will let you know how to post a JSON from a client to a server using a requests library. Also, if you are facing a “400 bad request error” while posting JSON to the server, this article will try to solve that.
Further Reading:
Steps to Build a JSON POST request
Create a URL object: Let’s create a URL object. We need a target URI string that accepts the JSON data via HTTP POST method. In this example, I am using httpbin.org service to Post JSON data. httpbin.org is a web service that allows us to test the HTTP request. You can use it to test and inspect your POST request. httpbin.org responds with data about your request.
So my URL is: “https://httpbin.org/post“
Set the Request Method: As the name suggests, we need to use a post method of a request module.
requests.post('https://httpbin.org/post')
Specify the POST data: As per the HTTP specification for a POST request, we pass data through the message body. Using requests, you’ll pass the payload to the corresponding function’s data parameter. Data can be anything including JSON, dictionary, a list of tuples, bytes, or a file-like object. In this example, I am sending the following JSON data.
If you have data in the form of a dictionary or any Python object, you can convert it into JSON like this.
import json sampleDict = < "id": 1, "name":"Jessa" >jsonData = json.dumps(sampleDict)
Use The json parameter: The requests module provides a json parameter that we can use to specify JSON data in the POST method. i.e., To send JSON data, we can also use the json parameter of the requests.post() method.
requests.post('https://httpbin.org/post', json=)
Why set it to json? Because it will help the request module to serialize your data into the JSON format. Now, Let’s see the example.
Approach 1: Using json parameter
import requests response = requests.post('https://httpbin.org/post', json=) print("Status code: ", response.status_code) print("Printing Entire Post Request") print(response.json())
Status code: 200 Printing Entire Post Request , 'data': '', 'files': <>, 'form': <>, 'headers': , ' json': , 'origin': 'xxx.xx.xx.xx, xxx.xx.xx.xx', 'url': 'https://httpbin.org/post'>
Note: This service returns your entire request as a response so it will help you to know details about your request.
Approach 2: By setting header information
Alternatively, we can set the request’s content-type. In this example, we are passing JSON, so the request’s content type is application/json .
By specifying correct request headers so that the requests module can serialize your data into the correct Content-Type header format. In this can we don’t need to use the json parameter. This is useful for an older version. Let’s see the example now.
import requests newHeaders = response = requests.post('https://httpbin.org/post', data=, headers=newHeaders) print("Status code: ", response.status_code) response_Json = response.json() print("Printing Post JSON data") print(response_Json['data']) print("Content-Type is ", response_Json['headers']['Content-Type'])
Status code: 200 Printing Post JSON data id=1&name=Jessa application/json
Test Your JSON POST request using postman before executing
It is always a best practice to test your request along with its message body using postman to verify JSON data, and a request is in the required format. Let’s see how to test POST request using postman.
Add Postman extension or install a native postman app. Let’s see the steps now.
- Select POST request and enter your service POST operation URL.
- Click on Headers. In the key column enter Content-Type and in the Value column enter application/json .
- Click on the body section and click the raw radio button. enter your JSON data. Click the Send button.
Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.
About Vishal
I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter
Related Tutorial Topics:
Python Exercises and Quizzes
Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.
- 15+ Topic-specific Exercises and Quizzes
- Each Exercise contains 10 questions
- Each Quiz contains 12-15 MCQ
Python requests: POST Request Explained
In this tutorial, you’ll learn how to use the Python requests library’s POST function to post data via HTTP. The Python requests library abstracts the complexities in making HTTP requests. The requests.post() function allows you to post data to a web resource.
By the end of this tutorial, you’ll have learned:
- How the Python requests post function works
- How to customize the Python requests post function with headers
- How to use the Python response objects when working with the post function
Understanding the Python requests POST Function
An HTTP POST request is used to send data to a server, where data are shared via the body of a request. In the request.post() function, data are sent with the data parameter, which accepts a dictionary, a list of tuples, bytes or a file object.
Let’s take a look at what the requests.post() function looks like in Python:
# Understanding the requests.post() Function import requests requests.post( url, data=None, json=None, **kwargs )
We can see that the function accepts three parameters:
- url , which defines the URL to post to
- data , which accepts a dictionary, list of tuples, butes, or a file-like object to send in the body of the request
- json , which represents json data to send in the body of the request
Additionally, the function accept a number of different keyword arguments inherited from the requests.request() function. These keyword arguments can be passed in directly and are described in the table below: