Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: C++ просто получить страницу по GET http
цитата
16/08/18 в 18:48
 S_Flash
Пиздец!
Уебанский c++! Хуй знает какая версия! Хуй знает какой gcc! Хуй знает какая FreeBSD!
Но блять, можно же как-то получить страницу по http get запросом?! Ёбаный каменный век. Целый день поисков такой хуеты, которая в одну строчку должна решаться. Найдены только какие-то костыли, которые хер откомпилятся.
цитата
16/08/18 в 18:55
 Magistrator
S_Flash писал:
Уебанский c++

ты говно, при чем тупое. при чем тут язык? лучший из имеющихся? facepalm.gif
цитата
16/08/18 в 20:04
 dDan
gcc --version trollface.png
цитата
16/08/18 в 20:07
 S_Flash
да это я так на эмоциях про gcc и FreeBSD
только толку.
Систему нельзя обновлять и gcc тоже ибо посыпится всё остальное, что надо будет пересобирать.
цитата
16/08/18 в 22:22
 lalex
libcurl
цитата
16/08/18 в 23:25
 S_Flash
lalex:
Да так и с делал

добавил в проект

Код:


..............

#include </usr/local/curl/include/curl/curl.h>

..............


static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

..............

          CURL *curl;
     CURLcode res;
     string readBuffer;

     curl = curl_easy_init();
     if(curl) {
       curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
       curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
       curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
       res = curl_easy_perform(curl);
       curl_easy_cleanup(curl);

       //std::cout << readBuffer << std::endl;
     }

string xml = readBuffer;




Когда файлик один и в нём только пара инклюдов всё компилится обычной строкой вида
Код:

g++ curl_test.cc -o curl_test -L/usr/local/lib -lcurl

И всё работает.

Но в данном модуле, где понядобилось вставить этот кусок кода ещё кипа инклудов типа:
Код:

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <list>
#include <vector>
#include <algorithm>
#include <pcre.h>
#include <math.h>
#include "bill.hh"
#include "libstr.h"
#include "cgi.hh"
#include <libxml/parser.h>
#include <libxml/tree.h>
+ инклуд курла


И в проекте с сотни три файлов распиханых по разным директориям. Всё собирается залинковаными Makefile.

Т.е. скомпилить отдельно этот файл я не могу в нём куча модулей инклудится. Поправить Makefile, чтоб тот пихал внешнию библиотеку в виде -L/usr/local/lib -lcurl, тоже хуй его знает!..


А так, да, в одном файлике, я копипастом сделал курловый экземпл, скомпилил и запустил. Всё сработало.
цитата
17/08/18 в 19:28
 rickdeckard
https://stackoverflow.com/questions/478898/how-to-execute-a-command-…sing-posix

запускаеш в с++ проге wget или curl и все - зачем создавать себе проблемы?


Эта страница в полной версии