Как стать автором
Обновить

Библиотека для упрощения HTTP-запросов

Время на прочтение 1 мин
Количество просмотров 148K
Python *
Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Вот как выглядит HTTP-запрос с авторизацией с помощью requests:

>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Читать дальше →
Всего голосов 133: ↑117 и ↓16 +101
Комментарии 32

Бесплатные скринкасты для изучения Go

Время на прочтение 1 мин
Количество просмотров 9.6K
Разработка веб-сайтов *Go *
Туториал
На сайте GoCasts.io опубликована небольшая подборка скринкастов, обучающих программированию на языке Go. Всего опубликовано три скринкаста от Алана Харпера. Приятно, что в качестве примеров выбраны не абстрактные, а самые практичные примеры из реальной жизни.

#1 – HTTP Get
Как осуществить простой HTTP-запрос с использованием пакета net/http в стандартной библиотеке Go.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Комментарии 3

Баг на миллион долларов

Время на прочтение 1 мин
Количество просмотров 19K
Разработка веб-сайтов *IT-стандарты *
Голландский программист Жак Матти (Jacques Mattheij) — владелец сайта ww.com и один из первых людей, кто организовал прямые трансляции с веб-камер в интернете. Он обращает внимание на баг в HTTP, благодаря которому можно заметно ускорить работу множества веб-приложений и обычных веб-сайтов.

HTTP (RFC 1945) формально является синхронным протоколом. В стандарте чётко прописано, что HTTP-ответ может быть отправлен только после получения соответствующего HTTP-запроса. На практике же всё работает иначе.
Читать дальше →
Всего голосов 104: ↑59 и ↓45 +14
Комментарии 41

Удаленное управление VLC player’ом при помощи Arduino и Python

Время на прочтение 4 мин
Количество просмотров 15K
Python *
Из песочницы
Добрый день, уважаемые читатели.

Я давно интересовался Arduino, и вот однажды решился на покупку этой замечательной платформы. После недолгих поисков приобрел небольшой Arduino kit, в котором, помимо прочего, был ИК-датчик и пульт к нему. Изучив примеры из мануала, понял, что настало время придумать что-то свое. В итоге я решил сделать удаленное управление VLC player’ом, используя магию Arduino и Python3.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 2

СМС-рассылка с Google Sheets API

Время на прочтение 3 мин
Количество просмотров 26K
JavaScript *Google API *
Из песочницы
Недавно от знакомого фриланс-работодателя поступило предложение о небольшой работе, связанной с организацией смс-рассылки, данные для которой должны браться из .xls-таблицы. Плюс к этому было необязательное пожелание вынести эту же таблицу на корпоративный веб-сайт с обязательной возможностью её редактирования. При этом был озвучен весьма малый бюджет максимум на два человеко-дня.

Минимальное исследование существующих веб-инструментов работы с электронными таблицами показало, что разработка на их основе потребует времени в разы больше. Например, связка PHPExcel и какой-нибудь AJAX-таблицы выливалась в разработку функционала полноценного сайта. К тому же требующего отдельного хостинга в целях безопасности. Теоретически рассматривался вариант MS Excel + VB script, но и тут были свои подводные камни. В итоге выбор пал на Google Sheets.
Читать дальше →
Всего голосов 22: ↑17 и ↓5 +12
Комментарии 3

Небольшой скрипт для отслеживания цен avito из Google Spreadsheet

Время на прочтение 2 мин
Количество просмотров 44K
JavaScript *Google API *
Туториал
Хочу поделиться с сообществом небольшим скриптом для загрузки цен с сайта объявлений AVITO в Google Spreadsheet. Вдруг кому-нибудь еще пригодится.

Логика такая — в цикле бежим по ячейкам таблицы с адресами и запрашиваем странички. Из полученных страниц получаем цену и подставляем в соседние ячейки. Запуск скрипта через пункт меню Avito -> Update Prices.

Page Sample
(наименнннование sic!)
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Комментарии 33

Основы Angular: HttpClient

Время на прочтение 6 мин
Количество просмотров 73K
Разработка веб-сайтов *JavaScript *Angular *
Туториал
Перевод

Самый распространенный способ получить данные из web служб — это через Http. И в этой статье мы посмотрим как это можно сделать Http-запрос в Angular 4.3 через новый HttpClient.


Начиная с версии Angular 4.3 появился новый HttpClient. В этой статье описывается только новый клиент.

Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 17

Асинхронные HTTP-запросы на C++: входящие через RESTinio, исходящие через libcurl. Часть 1

Время на прочтение 16 мин
Количество просмотров 9.1K
Open source *Программирование *C++ *

Преамбула


Наша команда занимается разработкой небольшого, удобного в использовании, встраиваемого, асинхронного HTTP-сервера для современного C++ под названием RESTinio. Начали его делать потому, что нужна была именно асинхронная обработка входящих HTTP-запросов, а ничего готового, чтобы нам понравилось, не нашлось. Как показывает жизнь, асинхронная обработка HTTP-запросов в C++ приложениях нужна не только нам. Давеча на связь вышли разработчики из одной компании с вопросом о том, можно ли как-то подружить асинхронную обработку входящих запросов в RESTinio с выдачей асинхронных исходящих запросов посредством libcurl.

По мере выяснения ситуации мы обнаружили, что эта компания столкнулась с условиями, с которыми сталкивались и мы сами, и из-за которых мы и занялись разработкой RESTinio. Суть в том, что написанное на C++ приложение принимает входящий HTTP-запрос. В процессе обработки запроса приложению нужно обратиться к стороннему серверу. Этот сервер может отвечать довольно долго. Скажем, 10 секунд (хотя 10 секунд — это еще хорошо). Если делать синхронный запрос к стороннему серверу, то блокируется рабочая нить, на которой выполняется HTTP-запрос. А это начинает ограничивать количество параллельных запросов, которые может обслуживать приложение.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 0

Сервис проверки HTTP-заголовков сервера

Время на прочтение 2 мин
Количество просмотров 10K
Блог компании ITSOFT Хостинг Разработка веб-сайтов *Серверная оптимизация *Серверное администрирование *
Для любого сайта важно правильно настроить HTTP-заголовки. На тему заголовков было написано много статей. Здесь мы обобщили накопленный опыт, документацию RFC. Какие-то из заголовков обязательные, какие-то устаревшие, какие-то могут вносить путаницу и противоречия. Мы сделали пузомерку для автоматической проверки HTTP-заголовков веб-сервера. В отличии от многих других сервисов, которые просто показывают заголовки, данный сервис позволяет:

  1. задать значение типовых заголовков;
  2. добавить свои произвольные заголовки;
  3. указать версию HTTP-протокола: 1.0, 1.1, 2 (проверяет поддерживается ли HTTP/2);
  4. указать метод запроса, время ожидания и данные postdata для отправки на сервер;
  5. также пузомерка проверяет корректность ответа на запросы If-Modified-Since, If-None-Match, если в ответе сервера есть Last-Modified или ETag.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 25

HTTP headers checker

Время на прочтение 2 мин
Количество просмотров 2.4K
Хостинг Разработка веб-сайтов *Серверная оптимизация *Серверное администрирование *
Перевод
For any site, it is important to properly configure the HTTP headers. A lot of articles have been written on the subject of headings. Here we have summarized the lessons learned, the RFC documentation. Some of the headings are mandatory, some are obsolete, some can be confusing and contradictory. We did a parsing to automatically check the HTTP headers of the web server.

Correct HTTP headers increase security and trust in the site, including from search engines, can affect the site’s position in Yandex and Google, save server resources, reduce server load, thereby increasing the server response speed, which again affects the ranking of the site in the search, save money on payment powerful hosting, which may not be required for the site when configured correctly.
Read more →
Рейтинг 0
Комментарии 2

API для генерации ответов сервера с любыми кодами статусов

Время на прочтение 2 мин
Количество просмотров 6.7K
API *Тестирование веб-сервисов *

Привет, Хабр! Работая над библиотекой-обёрткой REST API, я столкнулся с проблемой. Для тестирования обработки ошибочных кодов ответа сервера (400, 500, 403 и т.д.) необходимо искусственно создавать условия на сервере для получения соответствующих кодов. При правильно настроенном сервере, например, непросто получить ошибку 500. А тестировать функции-обработчики ошибок как-то надо. Я написал небольшое API, которое генерирует ошибочные ответы сервера — httpme.tk

Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 19

Ugly API

Время на прочтение 4 мин
Количество просмотров 2.2K
PHP *API *Dart *Flutter *

In this article, I’d like to talk about the problems I faced while integrating an API for the HTTP protocol and share my experience in solving them.

- REST vs Non REST architecture

- Ignoring Header Accept: application/json

- Mixing JSON keys case types

- Different response to the same request

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Создание внешних запросов с использованием HttpFactory (Joomla)

Время на прочтение 2 мин
Количество просмотров 1.9K
CMS *Разработка веб-сайтов *PHP *API *Joomla *
Туториал
Перевод

Обычно когда мы хотим сделать внешний запрос мы используем для этих целей cURL. Настройка cURL довольно громоздкая, да и в принципе проблематично держать в голове все необходимые настройки. Также есть сервера без поддержки cURL, а значит Ваш код не будет работать. В этих случаях нужен запасной вариант.

С использованием Joomla довольно легко настроить cURL и все необходимые резервные варианты подключений в одной строчке кода.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 4