JavaRush /Курсы /Модуль 1: Python Core /Работа с сетью

Работа с сетью

Модуль 1: Python Core
13 уровень , 2 лекция
Открыта

3.1 Модуль requests

Для базовой работы с интернетом в Python есть библиотека requests. Она предоставляет удобный интерфейс для работы с сетью, позволяя отправлять HTTP-запросы и получать ответы с минимальными усилиями.

Эта библиотека не поставляется вместе с Python, поэтому перед ее использованием вам нужно установить ее с помощью менеджера пакетов.

Откройте ваш терминал и напишите:


pip install requests
        

После установки библиотеки вы можете использовать модуль requests в своих проектах. Например, вот так вы можете определить свой внешний IP-адрес:


import requests

response = requests.get("http://ip.jsontest.com/")
print(response.status_code)  # Выводит статус код ответа
print(response.json())       # Выводит JSON-ответ

Тут мы отправили запрос на сервис (сайт) ip.jsontest.com, который возвращает JSON-объект с IP-адресом, с которого к нему пришел запрос. Само обращение и получение ответа выполняется в одну строку — это очень удобно. В остальных строках мы просто распечатали ответ сервера.

В примере выше мы вызвали метод get(), ниже я расскажу об этом методе и о других методах объекта requests.

3.2 Список методов

У объекта requests есть методы на все случаи жизни, а вернее по одному методу на каждый тип HTTP-запроса.

Метод Описание
requests.get() Отправляет GET-запрос для получения данных с сервера.
requests.post() Отправляет POST-запрос для отправки данных на сервер.
requests.put() Отправляет PUT-запрос для обновления данных на сервере.
requests.delete() Отправляет DELETE-запрос для удаления данных с сервера.
requests.head() Отправляет HEAD-запрос для получения заголовков без тела ответа.
requests.options() Отправляет OPTIONS-запрос для получения поддерживаемых методов и параметров сервера.
requests.patch() Отправляет PATCH-запрос для частичного обновления данных на сервере.
requests.request() Основной метод для отправки всех типов HTTP-запросов.

Ниже мы рассмотрим самые основные из них.

3.3 Отправка GET-запроса и POST-запроса

GET-запрос обычно состоит только из URL, или же может содержать дополнительную строку параметров.

1. Отправка чистого GET-запроса

GET-запрос используется для получения данных с сервера. Обязательным параметром является URL, на который и отправляется запрос.

Пример:


import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code)  # Выводит статус код ответа
print(response.json())       # Выводит JSON-ответ

2. Отправка GET-запроса с параметрами

Также URL может содержать дополнительные параметры в виде строки key=value&key2=value2&…

В нашем случае параметры передаются в виде словаря и переменной params:


import requests

params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())

3. Отправка POST-запроса

POST-запрос может содержать тело запроса: текст, JSON или даже картинку.

Пример:


import requests

data = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())

3.4 Отправка PUT-запроса и DELETE-запроса

1. Отправка PUT-запроса

PUT-запрос используется для обновления данных на сервере.


import requests

data = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())

2. Отправка DELETE-запроса

DELETE-запрос используется для удаления данных с сервера.


import requests

response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())

Чтобы лучше понимать суть GET, POST, PUT и DELETE запросов, вам нужно прочитать лекции про устройство сети, интернет, веб и HTTP. Все это вас ждет в недалеком будущем.

2
Задача
Модуль 1: Python Core, 13 уровень, 2 лекция
Недоступна
Отправка GET-запроса
Отправка GET-запроса
2
Задача
Модуль 1: Python Core, 13 уровень, 2 лекция
Недоступна
Отправка POST-запроса
Отправка POST-запроса
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Денис Уровень 32
5 января 2025
Что-то у Jsontest не задалось с адресом - 404 возвращает
Дмитрий Уровень 27
14 мая 2025
Добрые люди официально разрешили использовать свой адрес https://api.myip.com вместо http://ip.jsontest.com/ Там тоже JSON, так что вполне юзабельно. Детали: https://www.myip.com/api-docs/
Денис Уровень 32
14 мая 2025
На тот момент я просто свою апишку покверял ) А вот то что было в статьях не работало. Так тоже бывает.