HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: python, веб-пайтон, httpie</p>
1 <p>Теги: python, веб-пайтон, httpie</p>
2 <p>Часто при написании на Python<strong>веб-сервисов</strong>, предоставляющих REST API, хочется посмотреть, как сервис реагирует на различные HTTP-запросы. Конечно, можно мучиться с браузером или пользоваться curl, но когда интересующий запрос содержит нестандартные заголовки, тело в формате JSON, Cookie и прочее, длина командной строки для вызова curl становится устрашающей, а помнить нужные ключи вызова становится всё труднее.</p>
2 <p>Часто при написании на Python<strong>веб-сервисов</strong>, предоставляющих REST API, хочется посмотреть, как сервис реагирует на различные HTTP-запросы. Конечно, можно мучиться с браузером или пользоваться curl, но когда интересующий запрос содержит нестандартные заголовки, тело в формате JSON, Cookie и прочее, длина командной строки для вызова curl становится устрашающей, а помнить нужные ключи вызова становится всё труднее.</p>
3 <p>На выручку спешит инструмент под названием HTTPie. Он легко устанавливается в популярных ОС, так как сам по себе написан на Python.</p>
3 <p>На выручку спешит инструмент под названием HTTPie. Он легко устанавливается в популярных ОС, так как сам по себе написан на Python.</p>
4 <p>Синтаксис вызова HTTPie необычайно прост: устанавливаемый в систему бинарник называется http, командная строка для POST-запроса к API выглядит следующим образом:</p>
4 <p>Синтаксис вызова HTTPie необычайно прост: устанавливаемый в систему бинарник называется http, командная строка для POST-запроса к API выглядит следующим образом:</p>
5 http POST localhost:8080/api/method<p>Добавить в запрос дополнительный заголовок можно, дописав в конец строки название заголовка и через двоеточие - его значение, например, Authorization:secret-token.</p>
5 http POST localhost:8080/api/method<p>Добавить в запрос дополнительный заголовок можно, дописав в конец строки название заголовка и через двоеточие - его значение, например, Authorization:secret-token.</p>
6 <p>HTTPie примечателен читаемостью вывода. В отличие от curl, он не вываливает в терминал массу информации о SSL-сертификате.<strong>Убер-фича HTTPie</strong>- выделение цветом не только всех заголовков, но и тела ответа в соответствии с типом полученного документа, да ещё и корректная идентация тела ответа - JSON, слепленный сервером в одну длинную неудобочитаемую строку, превращается в красоту на прикреплённом скриншоте. К слову о SSL, если вы тестируете ваш веб-сервис у себя на localhost с самоподписанным сертификатом, заставить HTTPie не проверять его валидность можно ключом<strong>--verify=no</strong>.</p>
6 <p>HTTPie примечателен читаемостью вывода. В отличие от curl, он не вываливает в терминал массу информации о SSL-сертификате.<strong>Убер-фича HTTPie</strong>- выделение цветом не только всех заголовков, но и тела ответа в соответствии с типом полученного документа, да ещё и корректная идентация тела ответа - JSON, слепленный сервером в одну длинную неудобочитаемую строку, превращается в красоту на прикреплённом скриншоте. К слову о SSL, если вы тестируете ваш веб-сервис у себя на localhost с самоподписанным сертификатом, заставить HTTPie не проверять его валидность можно ключом<strong>--verify=no</strong>.</p>
7 <p>HTTPie способен "понимать" JSON не только в теле ответа, но и в качестве входных данных: передадим нашему API POST-запрос с телом, в котором находится JSON-объект с именем пользователя:</p>
7 <p>HTTPie способен "понимать" JSON не только в теле ответа, но и в качестве входных данных: передадим нашему API POST-запрос с телом, в котором находится JSON-объект с именем пользователя:</p>
8 http POST localhost:8080/api/register first_name=Vasya last_name=Pupkin<p>Также можно записать JSON-представление объекта в простой текстовый файл и передать его на стандартный ввод HTTPie следующим образом:</p>
8 http POST localhost:8080/api/register first_name=Vasya last_name=Pupkin<p>Также можно записать JSON-представление объекта в простой текстовый файл и передать его на стандартный ввод HTTPie следующим образом:</p>
9 http POST localhost:8080/api/register &lt; vasya.txt<p>Комбинирование HTTPie с оператором перенаправления ввода-вывода | открывает богатые возможности его использования в скриптах в неинтерактивном режиме.</p>
9 http POST localhost:8080/api/register &lt; vasya.txt<p>Комбинирование HTTPie с оператором перенаправления ввода-вывода | открывает богатые возможности его использования в скриптах в неинтерактивном режиме.</p>
10  
10