LINUX.ORG.RU

У меня на сосфорже стяни древнюю CGI-шную библиотечку. Ничего там сложного нет. Точно так же, как и в баше каком-нибудь.

Eddy_Em ☆☆☆☆☆ ()

Глянь ещё на cgic. Но я сам его не копал, т.ч. кроме названия ничего не знаю.

В другую сторону там тоже ничего сложного. Читаешь RFC1867 и вперёд.

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от anonymous

Как то пробовал, не разобрался. Возможно попробую занятся этим серьезнее.

Soyfer ()

для практических задач чё-нить стянуть/послать - libcurl. привести в порядок (без отрывания голов дёзигнерам) tidy, вытащить данные libxml и xquery в ней.

на низком уровне самому посылать запросы хоть и глупо (при наличии 100500 реализаций до вашей), но возможно - это примитивные read/write и чтение спецификаций.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от Eddy_Em

а при чём тут json?

ежели клиент отдаст json это совсем хорошо - но это блин редкость :( на практике сдёргивания данных со страниц (почему-то) рулит классический конвеер - raw-html -> xhtml -> xml -> xquery, где шаги опциональны и зависят от ситуации.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

а при чём тут json?

При том, что в нем удобней разные параметры передавать.

но это блин редкость

Что за бред? Клиента ты сам пишешь? Сам. И с чего бы он не отдал JSON?

на практике сдёргивания данных со страниц

Если бы ТСу нужно было такой элементарщиной заняться, он просто взял бы wget/curl + bash/что-нибудь еще.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Если бы ТСу нужно было такой элементарщиной заняться, он просто взял бы wget/curl + bash/что-нибудь еще.

у меня чёткое ощущение, что ТС`у как раз это и надо :-) Из некой программы отправить запрос, получить данные от сервера (которые придут в кривом html`е) и оттуда получить что-нить полезное..

вряд-ли человека который «На линукс перешел недавно, немного раньше на C» бросили писать CGI на чистом C :-)

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

Примерно это мне и надо, однако хотелось бы понять как оно рпботает.

Soyfer ()

Нахрена человеку CGI?!

Оп, лучше сначала научись руками отправлять запросы на башах через netcat: набери в любом текстовом файле такой запрос:

getrequest.txt

GET / 1.1
Host: www.linux.org.ru
Connection: close

И отправь его в таком первозданном виде на сервер с помощью netcat:

netcat -e getrequest.txt www.linux.org.ru 80
Когда научишься руками формировать запрос, начинай курить man gethostbyaddr, man connect, man send и man recv. Это всё сишные функции, которые входят не в ANSI C, а в BSD sockets. Твоя задача, оп — найти IP узла "www.linux.org.ru" с помощью gethostbyaddr(), подключиться к нему с помощью connect(), передать ему запрос с помощью send() и получить запрос с помощью recv(), после чего закрыть соединение с помощью close().

Northsoft ★★ ()
Ответ на: Нахрена человеку CGI?! от Northsoft

Re: Нахрена человеку CGI?!

Два чаю этому господину, а если быть еще точнее - гугл berkeley sockets.

anonymous ()

Не совсем то, что ты просишь, но может так как ты недавно перешел на GNU, то не знаешь, что можно обойтись и стандартными утилитами.

curl http://get.ru, и curl --data «email=fofofo@fofo.fo» http://post.ru могут помочь тебе.

Deleted ()
Ответ на: комментарий от MKuznetsov

у меня чёткое ощущение, что ТС`у как раз это и надо

А у меня такого ощущения нет. Мне кажется, ему CGI нужен. Потому как какой смысл еще один wget изобретать?

вряд ли

Почему это? У меня сишные CGI уже лет 10 как крутятся... И новые веб-сервисы тоже делаю на том же самом принципе.

Eddy_Em ☆☆☆☆☆ ()

Эээ, может, я не понял, но - причём тут HTTP-запросы и компилятор? ТС, ты что имел ввиду? Ты как компилятором собирался запросы делать?

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

ТС, ты что имел ввиду? Ты как компилятором собирался запросы делать?

Все прекрасно поняли что я имел в виду, gcc я упомянул чтобы уточнить какой язык и компилятор собираюсь использовать.

Не совсем то, что ты просишь, но может так как ты недавно перешел на GNU, то не знаешь, что можно обойтись и стандартными утилитами.

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

Когда научишься руками формировать запрос, начинай курить man gethostbyaddr, man connect, man send и man recv

Запросы составлять умею, про gethostbyaddr, connect,send и recv обязательно почитаю, спасибо. Пока что, наверное, использую libcurl.

Soyfer ()
Ответ на: комментарий от BattleCoder

Стану, чтобы разобраться как это работает. Но только для себя.

Soyfer ()

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

bj ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.