Russian Qt Forum
Ноябрь 24, 2024, 00:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Curl [Linux]  (Прочитано 5627 раз)
aut0mat
Гость
« : Январь 14, 2011, 15:53 »

Не подскажите как подключить CURL к проекту Qt?
OS: Linux Mint
« Последнее редактирование: Январь 14, 2011, 18:24 от aut0mat » Записан
Stiff
Гость
« Ответ #1 : Январь 18, 2011, 21:14 »

Для начала apt-get install libcurl-dev
В сырцах #include <curl/curl.h>
В .pro файле LIBS += curl
Записан
aut0mat
Гость
« Ответ #2 : Январь 21, 2011, 14:35 »

Спасибо, получилось.
Возникли некоторые проблемы с курлом:
Пиши софтинку с веб авторизацией пытають использовать курл так:
Код:
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://bla-bla-bla.ru/login/");
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "login=" + login + &pass=" + password);
Но после установки CURLOPT_POSTFIELDS программа вылетает
Код:
Программа неожиданно завершилась.
Как я понимаю запрос нужно составлять как-то иначе, но как?
Add: При компилировании выдаёт предупреждение:
Код:
warning: cannot pass objects of non-POD type ‘class QString’ through ‘...’; call will abort at runtime
« Последнее редактирование: Январь 21, 2011, 14:39 от aut0mat » Записан
aut0mat
Гость
« Ответ #3 : Январь 21, 2011, 15:31 »

Проблема была решена.
Записан
Юрий Гирин
Гость
« Ответ #4 : Июль 04, 2011, 20:25 »

Если не секрет, подскажите, как?
Записан
twp
Гость
« Ответ #5 : Июль 04, 2011, 22:04 »

могу предположить что исходя из текста сообщения компилятора, проблема была в этой строке:
Код:
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "login=" + login + "pass=" + password);
т.е. передача не POD типа QString в функцию с переменным числом параметров. Чтобы это исправить, достаточно передать как const char * например так:

Код:
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, qPrintable("login=" + login + "pass=" + password));
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 21.