Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.09.2014, 01:10   #21
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 146
Репутация: 211
По умолчанию

Цитата:
Блог интересный.
А как быть тогда если эту нужно под линукс и на Си ?
Не понял вопроса...
Разве под Linux нельзя писать на С++ ?
Или использовать Qt?
Avazart вне форума   Ответить с цитированием
Старый 26.09.2014, 01:15   #22
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Адрес: Киев
Сообщений: 309
Репутация: 10
По умолчанию

Все дело в том, что я ограничен - ANSI C.
Qt - для меня вообще что-то такое страшное а с помощью Qt это все легче реализовать ?
__________________
Спеши медленно.
asmars вне форума   Ответить с цитированием
Старый 26.09.2014, 09:03   #23
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,391
Репутация: 1665
По умолчанию

Цитата:
Сообщение от Avazart Посмотреть сообщение
Но в таких случаях куда проще встроить браузер в приложение и после авторизации брать с него куки для запросов, например под виндой можно встроить IE, если использовать Qt - WebKit.
Какой браузер посоветуете для встраивания под линукс без иксов?

A если встраивать IE, тогда зачем WebKit?
waleri на форуме   Ответить с цитированием
Старый 27.09.2014, 11:15   #24
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 146
Репутация: 211
По умолчанию

В Qt уже есть модуль с вебкитом, IE - это только для винды.
Сомневаюсь что можно без иксов, все же браузер.
Avazart вне форума   Ответить с цитированием
Старый 27.09.2014, 14:08   #25
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Адрес: Киев
Сообщений: 309
Репутация: 10
По умолчанию

Ребят, как понять, участвует js в входе на сайт или нет?
Хочу понять можно это реализовать с помощью linux+c+libcurl..
__________________
Спеши медленно.
asmars вне форума   Ответить с цитированием
Старый 27.09.2014, 15:50   #26
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Адрес: Киев
Сообщений: 309
Репутация: 10
По умолчанию

Почитав блог Avazart, решил переписать код заново.

Вот код:
Код:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>

size_t  write_data(void *ptr, size_t size, size_t nmemb, FILE *stream)
{
    static int first_time=1;
    char outfilename[FILENAME_MAX] = "body.html";
    static FILE *outfile;
    size_t written;
	
    if (first_time) {
        first_time = 0;
		
        outfile = fopen(outfilename,"w");
        if (outfile == NULL) {
            return -1;
        }
        fprintf(stderr,"The body is <%s>\n",outfilename);
    }
	
    written = fwrite(ptr,size,nmemb,outfile);
    return written;
}

size_t  write_header(void *ptr, size_t size, size_t nmemb, FILE *stream)
{
    static int first_time=1;
    char outfilename[FILENAME_MAX] = "header.html";
    static FILE *outfile;
    size_t written;
	
	//time_t curtime = time (NULL);
	//struct tm* loctime = localtime (&curtime);
	//char outfilename[512];
	//sprintf(outfilename, "header_%s.html", asctime(loctime));
    if (first_time) {
        first_time = 0;
        outfile = fopen(outfilename,"w");
        if (outfile == NULL) {
            return -1;
        }
        fprintf(stderr,"The body is <%s>\n",outfilename);
    }
    written = fwrite(ptr,size,nmemb,outfile);
    return written;
}

int main(int argc, char **argv)
{

CURL *curl_handle;
    CURLcode result;
 
    char *data1;
    char *data2;
    int data2len;

    curl_handle = curl_easy_init();
	
	curl_easy_setopt(curl_handle,   CURLOPT_URL, "http://сайт.com/");
	curl_easy_setopt(curl_handle,CURLOPT_WRITEFUNCTION, &write_data);
	curl_easy_setopt(curl_handle,  CURLOPT_HEADERFUNCTION, write_header);

	curl_easy_setopt(curl_handle,   CURLOPT_USERAGENT, "Mozilla/5.0");
	curl_easy_setopt(curl_handle,   CURLOPT_AUTOREFERER, 1 );
	curl_easy_setopt(curl_handle,   CURLOPT_REFERER, "http://сайт.com/");

	curl_easy_setopt(curl_handle, CURLOPT_FOLLOWLOCATION, 1);
	curl_easy_setopt(curl_handle, CURLOPT_MAXREDIRS, 5);

	curl_easy_setopt(curl_handle, CURLOPT_COOKIEFILE,"");
	

	char *data="user_name=имя&password=пароль";
	curl_easy_setopt(curl_handle,   CURLOPT_POSTFIELDS, data);
	
	result = curl_easy_perform( curl_handle );
	
	if(result == CURLE_OK){
		printf("OKKKKKK\n\n");
	}
	
	curl_easy_cleanup(curl_handle);

    return 0;
}

Теперь, в файле body.html содержится такое, вместо начальной странички:
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Refresh" content="0; url=index.php" />
</head>
<body>
</body>
</html>

__________________
Спеши медленно.
asmars вне форума   Ответить с цитированием
Старый 30.09.2014, 00:06   #27
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Адрес: Киев
Сообщений: 309
Репутация: 10
По умолчанию

Я пока отложу эту задачу.
Если кому надо будет помочь с подобным или пояснить код - пишите, помогу чем смогу
__________________
Спеши медленно.
asmars вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LibCurl в QtCreator Linux ubuntu Notan1310 C/C++ Сетевое программирование 5 02.08.2013 22:31
Передача данных с coockie в поле формы (input type="text") Olegzxc PHP 1 10.07.2011 14:36
LIbCurl linux lazarus ВИННИ ПУX Lazarus, Free Pascal, CodeTyphon 0 10.05.2011 10:50
libcurl.NET badgo Общие вопросы .NET 2 31.07.2010 17:33
login@domain.com;pass она должна брать сначала только "login" потом "domain.com" и на последок "pass" AquaKlaster Общие вопросы Delphi 4 05.04.2009 17:31


16:58.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru