The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В рамках проекта HTTPie развивается упрощённый аналог утилиты curl

10.03.2012 15:03

В рамках проекта HTTPie предпринята попытка создания упрощённого аналога утилиты curl, ориентированного на отправку запросов с использованием API web-сервисов. В отличие от curl, HTTPie изначально ориентирован на использование JSON и поддерживает подсветку синтаксиса, что позволяет увеличить наглядность вывода результатов обращения к различным API. Код утилиты написан на языке Python с использованием модулей Requests и Pygments. Исходные тексты распространяются под лицензией BSD.

Запрос формируется без нагромождения опциями в виде "http метод URL параметры". Поддерживается разбор параметров в формате JSON и автоматическая сериализация в JSON параметров, заданных в виде списка. Если в качестве разделителя параметров используется двоеточие, считается, что это HTTP-заголовок, если символ "=" - строковый параметр запроса, ":=" - числовой параметр.

Например, после выполнения:


   http PATCH api.example.com/person/1 X-API-Token:123 name=John email=john@example.org age:=29

будет выполнен запрос:


   PATCH /person/1 HTTP/1.1
   User-Agent: HTTPie/0.1
   X-API-Token: 123
   Content-Type: application/json; charset=utf-8

   {"name": "John", "email": "john@example.org", "age": 29}

если дополнительно указать опцию "-f" то вместо "application/json" будет использован тип "application/x-www-form-urlencoded" и в итоге получим:


   PATCH /person/1 HTTP/1.1
   User-Agent: HTTPie/0.1
   X-API-Token: 123
   Content-Type: application/x-www-form-urlencoded; charset=utf-8

   age=29&name=John&email=john%40example.org


  1. Главная ссылка к новости (https://github.com/jkbr/httpie...)
  2. OpenNews: Новая версия утилиты cURL 7.23.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33314-curl
Ключевые слова: curl, httpie, http
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, evgeny_t (ok), 16:11, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    curl - стандарт,
    а он должен быть один
     
     
  • 2.4, Xasd (ok), 16:30, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > curl - стандарт,

    правда чтоль? xD

    ды даже не существует libcurl-привязки для Python3 xD ... настолько это "стандарт"

     
     
  • 3.6, zy (?), 16:58, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Проблемы негров никого не волнуют
     
     
  • 4.22, Xasd (ok), 19:08, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Проблемы негров никого не волнуют

    они конешно не волнуют [кто спорит?]... но факт отсутствия привязки к популярному интерпретатору -- говорит о том что curl (libcurl) не такой уж и "стандарт"

     
     
  • 5.25, Аноним (-), 21:55, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Скорее, дело в том что популярность питона 3 сильно преувеличена. И вообще задолбали уже делать несовместимые версии питонов. Когда попадается скрипт на питоне - ему еще и питона надо подбирать. Прикиньте так работал бы какой-нибудь баш или си? Вот круто было бы! :)
     
     
  • 6.30, Xasd (ok), 23:08, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Когда попадается скрипт на питоне - ему еще и питона надо подбирать

    ну вот скачали вы скрипт, установили зависимости (из файла README), затем делаете:

    $ chmod +x ./my-script
    $ ./my-script

    в чём тут разница между Python и Bash (или C или perl) или прочего?

     
     
  • 7.33, R (?), 02:20, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > $ chmod +x ./my-script
    > $ ./my-script
    > в чём тут разница между Python и Bash (или C или perl)
    > или прочего?

    В том, что некоторые вполне себе python-скрипты работают только в конкретной версии Python, в отличие от. И иногда достаточно непросто угадать, какого же "пистона" ему, собаке, надо, опять таки в отличие от.

     
     
  • 8.36, Xasd (ok), 03:52, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    ну зайдите же на сайт автора этого python-скрипта и скачайте последнюю версию эт... большой текст свёрнут, показать
     
     
  • 9.39, Аноним (-), 06:33, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ох, как же достали эти придурки с синдромом гусёнка Выучат какую-нить одну хрен... текст свёрнут, показать
     
     
  • 10.74, Xasd (ok), 17:00, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на самом деле -- эти люди выучили много чего и другого но просто у них отсутс... текст свёрнут, показать
     
  • 9.41, arisu (ok), 09:05, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    орли а можно узнать, чем p s вопрос риторический, лучше промолчи ... текст свёрнут, показать
     
     
  • 10.75, Xasd (ok), 17:14, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    отвечу примером следущий кусок кода -- удалённо SSH переименовывает файл co... большой текст свёрнут, показать
     
     
  • 11.98, anonimous (?), 13:01, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да Bash не Java, все возможные эксепшны отлавливать не завставляет И да, во... текст свёрнут, показать
     
  • 9.60, Аноним (-), 11:58, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Зайдите пожалуйста на http natribu org и внимательно прочитайте Осознайте нап... большой текст свёрнут, показать
     
     
  • 10.70, Xasd (ok), 16:28, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    у _нас_ всё работает а с Вашими бинарными программами утилитами прикладного уро... большой текст свёрнут, показать
     
     
  • 11.83, arisu (ok), 20:53, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а вот это вообще феерически притащить нестандартное досовое гуано и вякать дет... текст свёрнут, показать
     
     
  • 12.85, Xasd (ok), 21:13, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ой что это было ненравится мой пример видители я привёл черезжопный пример код... текст свёрнут, показать
     
     
  • 13.87, arisu (ok), 21:17, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    всё ещё более запущено ты, вдобавок, неспособен отслеживать нить дискусии, если... текст свёрнут, показать
     
     
  • 14.93, Xasd (ok), 21:49, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну это возможно всё потомучто ваши троллинговые комментарии там постоянно ... большой текст свёрнут, показать
     
  • 9.68, фтыш (?), 14:12, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    лицорука жпг... текст свёрнут, показать
     
  • 9.104, Gular (ok), 10:56, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Ну причем здесь ошибка в python-скрипте , если между py... большой текст свёрнут, показать
     
  • 5.107, Фкуку (?), 23:44, 19/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> но факт отсутствия привязки к популярному интерпретатору

    «популярный интерпретатор» это g++

    ВСЕ ПРОЧЕЕ — ПРЯМО ЛЕСОМ И С РАЗБЕГУ :) :) :) :) :) :) :) :) :) :) :) :) :) :)

     
  • 3.15, Аноним (-), 18:38, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >ды даже не существует libcurl-привязки для Python3 xD ... настолько это "стандарт"

    Какой конкретно из них привязки нет под 3-й питон?:

    http://pypi.python.org/pypi?%3Aaction=search&term=curl&submit=search

     
     
  • 4.21, Xasd (ok), 19:05, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    лучше напиши вот так: "я попробовал <такуюто> libcurl-привязку к Python3, и она работает"

    потомучто тот pypi-список который по твоей ссылке -- весьма отличается от списка http://pypi.python.org/pypi?:action=browse&c=533&show=all

     
     
  • 5.53, Аноним (-), 09:56, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > лучше напиши вот так: "я попробовал <такуюто> libcurl-привязку к Python3, и она
    > работает"
    > потомучто тот pypi-список который по твоей ссылке -- весьма отличается от списка
    > http://pypi.python.org/pypi?:action=browse&c=533&show=all

    вишь ли теоретеГ, питон поставляется вместе со стандартной библиотекой и в каждой версии, то есть в любой даже самой урезанной версии python есть urllib , которая является ничем иным как биндингом к curl. Ваш К.О.

     
     
  • 6.69, Xasd (ok), 16:14, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > которая является ничем иным как биндингом к curl

    а судя по её исходникам -- связи с cURL там даже близко нет...

    ...зато чистая (pure python) реализация на sockets -- вполне там виднеется :-)

    # p.s.: сдаётся мне что Вы совсем не К.О.,
    а просто <некто> кому постоянно мерещется везде libcurl, библиотека которая как я уже выше писал НЕ ЯВЛЯЕСЯ СТАНДАРТОМ

     
  • 3.40, arisu (ok), 09:03, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    как бы это ни было неприятно для поклонников гвидобейсика, их язык не является Мерилом Всего.
     
     
  • 4.71, Xasd (ok), 16:38, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    верно... это просто популярный интерпретатор
     
     
  • 5.105, vasek (?), 13:13, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    популярный != хороший, вон пример есть такой, php называется
     
  • 2.7, Аноним (-), 17:00, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Недавно произошла смена ABI с 3 на 4, все программы стало нужно пересобрать. Так что он уже не один, а уже несколько несовместимых между собой версий Curl.
     
     
  • 3.11, Аноним (-), 17:33, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А у питона вообще несовместимых версий штуки 4 или 5 наверное. И каждый раз надо ломать бошку какая же версия вон той поделке нужна. С curl как-то проще все в этом плане.
     
     
  • 4.16, Аноним (-), 18:41, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А у питона вообще несовместимых версий штуки 4 или 5 наверное.

    Ага целая вторая и третья. У любого языка таких несовместимостей вагон и маленькая тележка.

     
     
  • 5.26, Аноним (-), 21:57, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Ага целая вторая и третья.

    Агащаз, в рамкой второй версии бидоны тоже частично несовместимы между собой, по поводу чего в пингвинах сроду таскают по 3 версии этой байды. Форменное уродство.

     
  • 5.42, arisu (ok), 09:07, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > У любого языка таких несовместимостей вагон и маленькая тележка.

    ты лжец. или будь любезен доказать оправданность квантора общности в данном случае.

     
  • 2.32, Coder (?), 00:37, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не то, что бы стандарт. Тем более, что пришлось его патчить. Но более удобного HTTP-клиента мне пока не попадалось.
     
  • 2.35, kb (?), 03:40, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ко-ко-ко-ко-ко

    Видимо ты пользуешься им раз в году. А вот когда каждый день приходится писать кучу ненужного бойлерплейта -- иной раз задумаешься об удобстве.

     

  • 1.5, XVilka (ok), 16:33, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    не проще ли было бы просто добавить эту функциональность в сам curl?
     
  • 1.10, Аноним (-), 17:31, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Код утилиты написан на языке Python

    "Они обнаружили в curl фатальный недостаток". Правда вот у их поделки будет в три раза больше фатальных недостатков по причине несовместимости разных версий их интерпретера, увы и ах :)

     
     
  • 2.17, Аноним (-), 18:41, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Код утилиты написан на языке Python
    > "Они обнаружили в curl фатальный недостаток". Правда вот у их поделки будет
    > в три раза больше фатальных недостатков по причине несовместимости разных версий
    > их интерпретера, увы и ах :)

    Расскажи каких?

     
     
  • 3.27, Аноним (-), 21:58, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Расскажи каких?

    Чего - каких? В 2.х версии 2.4, 2.5, 2.6 и 2.7 совместимы между собой далеко не на 100% по поводу чего большинство дистров таскает порядка 3 версий этой дряни, дабы избегать обломов в своих скриптах. Скрипты скачанные откуда-то сбоку - это вообще 100% лотерея. Ну и как будто бы этого было мало, версия 3 будет еще более несовместима с остальными. Волшебно!

     
     
  • 4.46, Аноним (-), 09:43, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Расскажи каких?
    > Чего - каких? В 2.х версии 2.4, 2.5, 2.6 и 2.7 совместимы
    > между собой далеко не на 100% по поводу чего большинство дистров
    > таскает порядка 3 версий этой дряни

    Ну то есть "теоретиГ" . И реальной несовместимости ты показать не можешь, потому как обратная совместимость есть.

     
     
  • 5.62, Аноним (-), 12:10, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > потому как обратная совместимость есть.

    Агащаз. Если б все было так радужно как вы тут вещаете, дистры пингвина не таскали бы по 3 версии бидона. А поскольку переписывать все скрипты им дико впадлу, им проще припереть соотв. версии интерпретеров. Но если там это утрясается майнтайнерами, то вот когда я беру скрипт где-то сбоку -  подбор "расово верной" версии бидона уже становится моей проблемой. А оно мне надо?!

     
     
  • 6.89, Xasd (ok), 21:26, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > вот когда я беру скрипт где-то сбоку -  подбор "расово верной" версии бидона уже становится моей проблемой

    ну давай же скорее свой говноскрипт в студию! обсудим несовместимости :-D :-D :-D :-D

     
     
  • 7.90, Xasd (ok), 21:29, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если б все было так радужно как вы тут вещаете, дистры пингвина не таскали бы по 3 версии бидона.

    мой дистрибутив [довольно-популярного] "пингвина" тоскает с собой:
            "gcc-4.4" , "gcc-4.5" , "gcc-4.6"
        (виртуальный пакет "gcc" указывает на "gcc-4.6" ... также как и в случае с виртуальным пакетом "python".. никаких отличий)

     
  • 5.101, vasek (?), 14:22, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Расскажи каких?
    >> Чего - каких? В 2.х версии 2.4, 2.5, 2.6 и 2.7 совместимы
    >> между собой далеко не на 100% по поводу чего большинство дистров
    >> таскает порядка 3 версий этой дряни
    > Ну то есть "теоретиГ" . И реальной несовместимости ты показать не можешь,
    > потому как обратная совместимость есть.

    есть несовместимост, ты врешь, сам ловил пару раз - с 2.4 на 2.5 (сообщение было: "бла бла но интерфейс этого вызова изменился"), лень искать те скрипты, так как винт уже два раза менял, но пару раз обжечься мне хватило, теперь лучше перл или руби возьму для скриптинга, а то и вообще шелл.
    и вообще меня печалит продукт, где в ченджлоге не секции "incompatibility" - http://www.python.org/getit/releases/2.5/NEWS.txt, хотя я их точно ловил

     

  • 1.13, the joker (ok), 17:49, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Неужели curl настолько тяжеловесный, что ему нужен "упрощённый аналог"??? Если под питон нет реализации curl, то почему не запилить полноценный аналог (и, если уж так хочется, добавить к нему свои свистелки)?
     
     
  • 2.14, Аноним (-), 17:56, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ага. Бинарь курлы весит аж целых 120 кило! Огромная прога. А у питона один только интерпретер потребный для запуска весит ~2.5 метра, это без учета скрипта и либ потребных для его старта... oO
     
  • 2.18, Аноним (-), 18:44, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Неужели curl настолько тяжеловесный, что ему нужен "упрощённый аналог"??? Если под питон
    > нет реализации curl, то почему не запилить полноценный аналог (и, если
    > уж так хочется, добавить к нему свои свистелки)?

    Новость читал? Что такое json представляешь? Так вот люди написали утилиту которая работает как curl только для json.

     
     
  • 3.28, Аноним (-), 22:02, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > работает как curl только для json.

    Во первых не понятно почему надо ограничиваться "только json". Во вторых еще менее понятно зачем это писать на питоне, который уже откровенно достал своими несовместимостями между версиями. Наверное чтобы через год-другой, когда питонистам попадет шлея под хвост выкатить очередную несовместимую версию, все как обычно перестало бы работать, потому что старые версии были плохими, а вот новая - хорошая. И так раз в 1-2 года, ать-ать-ать.

     
     
  • 4.47, Аноним (-), 09:45, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> работает как curl только для json.
    > Во первых не понятно почему надо ограничиваться "только json". Во вторых еще
    > менее понятно зачем это писать на питоне, который уже откровенно достал
    > своими несовместимостями между версиями. Наверное чтобы через год-другой, когда питонистам
    > попадет шлея под хвост выкатить очередную несовместимую версию, все как обычно
    > перестало бы работать, потому что старые версии были плохими, а вот
    > новая - хорошая. И так раз в 1-2 года, ать-ать-ать.

    Анонимы задрали со своей несовместимостью. Нет никакой несовместимости.

     
     
  • 5.63, Аноним (-), 12:12, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Анонимы задрали со своей несовместимостью. Нет никакой несовместимости.

    Да не напрягайтесь вы так, всем давно известно что свое - не пахнет. Питонисты просто эталонная иллюстрация. Вот только таскание по 3 версии питона 2.х в дистрах линукса этот тезис опровергает наповал. Было б все так как вы вещаете - таскали бы одну, последнюю. А вот и фигЪ, таскают по 3 версии, тудыть-растудыть.

     
     
  • 6.77, Xasd (ok), 17:41, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    БОХТЫМОЙ набрал aptitude search gcc и там тоже оказывается что в дистрибу... большой текст свёрнут, показать
     
     
  • 7.99, anonimous (?), 13:13, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Установленное в системе по умолчанию от того что есть в репозитории отличать умеете?

     
     
  • 8.106, Xasd (ok), 17:31, 15/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а как оно туда попало в репозиторий программа -- это творческий процесс, а не ... текст свёрнут, показать
     
  • 6.103, Куяврик (?), 01:04, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    это проблемы дистров. в нормальных только 2.7.2-r3 из второй ветки.
     

  • 1.19, Аноним (-), 18:47, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И назвали её http.

    ЛОГЕКА

     
     
  • 2.20, XVilka (ok), 18:59, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    не просто HTTP, но http_IE_! сразу понятно о чем речь...
     

  • 1.23, Аноним (-), 19:40, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Питоночерепаха курлу не конкурент.
     
     
  • 2.24, Xasd (ok), 21:03, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    верно, не конкурент... у них разные роли

    cURL -- это уневерсальная и громоздкая (с точки зрения использования) вещь.

    а HTTPie -- это лёгкая (с точки зрения использования) и узкоспециализированная

     
     
  • 3.100, vasek (?), 14:13, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ну хорош чушь морозить, curl - это всего-навсего консольная утилитка, интерфейс к очень годной и мощной библиотеке libcurl, и в вашем любимом питоне должны быть биндинги (я гарантирую это) к это либе.
    И если вы разработчик (а не очередной фанат питона), то вы с с легкостью можете сваять подобную поделку за полдня работы, если оно,конечно, вам действительно нужно.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру