Модераторы: feodorv

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTTPS клиент, передача xml-запросов 
:(
    Опции темы
east
Дата 4.4.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: нет
Всего: 1



Подскажите пожалуйста ресурсы по этой теме.Нужно написать https клиент который посылает xml запросы на сервер и получает xml ответы.До этого никогда не программировал для интернета, поэтому нужна информация по-подробней.
PM MAIL   Вверх
SenkraD
Дата 4.4.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 1
Всего: 23



у мя есть код на шарпе. Хоч вывешу.


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
east
Дата 4.4.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: нет
Всего: 1



А на С++. Хотя за не именеем кухарки довольствуются дворником. Давай. Желательно описание библиотек на русском.
PM MAIL   Вверх
SenkraD
Дата 6.4.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 1
Всего: 23



Сори - забыл проверить тему.
Тебе потом надо принятые данные надо вывести в браузер
Или те надо отослать http-запрос и принять, а потом что парсить, это раз.
Во вторых какая платформа Windows/Unix?

P.S. дай ответ сегодня до часиков 9 вечера, тогда мож код с шарпа на С++ переведу и утром в часиков 7 вывешу.


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
east
Дата 22.4.2007, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: нет
Всего: 1



Наконец попал в сеть.
платформа Windows
обычные странички скачиваю, но мне нужно отослать https-запрос и получить ответ, ответ потом обрабатывается по своему.
всё делается в программе никаких броузеров
PM MAIL   Вверх
SenkraD
Дата 23.4.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 1
Всего: 23



Привет.
В принципе вот недавно написал два классика (они не претендуют на роль  лучшей реализации), но строки жмут. Да, ещё одна мелочь, я щас пишу прогу на Builder поэтому там заюзан местами класс String поэтому если ты работаеш под Visual C++ придётся подправить.

Вот пример использования кода (я там щас лишнее не убирал - переменные класса и всё такое).
будет что-то не понятно спрашивай
Код

//                  
    char       szValue[0xFF];
    String     strRequest;
    TXMLParser *pParser;

    m_strCurrentOperation = "1001";
    memset(szValue, '\0', sizeof(szValue));
    pParser = new TXMLParser(SendRequest(strRequest.sprintf(
        "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
        "<request>"
            "<terminalid>%d</terminalid>"
            "<operationid>1001</operationid>"
            "<value>%s</value>"
        "</request>",
        GetTerminalID(),
        m_strChange.c_str())).c_str());

       pParser->GetValue("value", szValue, sizeof(szValue));
       m_strAccountCode = String(szValue);

       PrintCheck("Account.prn");

       delete pParser;

// Вот функция SendRequest - вынес ибо часто повторяется
String __fastcall TfrmMain::SendRequest(String strRequest)
{
    String     strResult;
    TTransport *pTransport;

    pTransport = new TTransport();
    pTransport->Init();
    pTransport->Connect(GetHOSTToConnect(), GetPortToConnect());
    pTransport->SendRequestToServer(strRequest);
    strResult = pTransport->GetData();

    delete pTransport;

    return strResult;
}



Там где #include "Global.h", нуно будет вставить и возможно что-то ещё (нету времени искать)
Код

#include <StdIO.h>
#include <String.h>



Это сообщение отредактировал(а) SenkraD - 23.4.2007, 10:31

Присоединённый файл ( Кол-во скачиваний: 22 )
Присоединённый файл  Classes.rar 3,45 Kb


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Goganchic
Дата 23.4.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Попробуй использовать библиотеку OpenSSL, она позволяет создать HTTPS соединение и работать с ним как с обычным сокетом, т.е. читать, писать и т.п.
PM Jabber   Вверх
east
Дата 23.4.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: нет
Всего: 1



Спасибо. Однако по ходу разница между Builder и Visual существенна. Я использовал WinInet, пака не получается. Обычные странички скачиваю, а с использованием SSL ответа не получаю. Подскажите ресурсы по OpenSSL.
PM MAIL   Вверх
SenkraD
Дата 24.4.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 1
Всего: 23



east,  замени тип String на CString или char* и будет оно под студией работать.
(Он изначально писался под ней).
Я бы вывесил да я их нечаяно удалил, а переделать времени нету


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Goganchic
Дата 24.4.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Цитата(east @  23.4.2007,  20:38 Найти цитируемый пост)
Подскажите ресурсы по OpenSSL. 

www.openssl.org
PM Jabber   Вверх
east
Дата 25.4.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: нет
Всего: 1



Спасибо. Буду пробовать. Если-что, ещё обращусь.
PM MAIL   Вверх
Snowy
Дата 25.4.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: нет
Всего: 484



Цитата(east @  23.4.2007,  20:38 Найти цитируемый пост)
Я использовал WinInet, пака не получается. Обычные странички скачиваю, а с использованием SSL ответа не получаю.
Там разница только в флагах в HTTPOpenRequest.
Для https нужно указать следующие флаги
INTERNET_FLAG_RELOAD INTERNET_FLAG_SECURE INTERNET_FLAG_IGNORE_CERT_CN_INVALID INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Если после этого HTTPSendRequest вернёт неудачу, проверь GetLastError.
Если там ERROR_INTERNET_INVALID_CA (кривой сертификат), то смотри солюшен в MSDN - там 2 примера кода, как это проигнорировать: можно с диалогом (InternetErrorDlg), а можно тихо (InternetSetOption).
Ну, то что порт и префикс должны быть прописаны правильно - эт думаю само собой понятно.

Добавлено через 6 минут и 52 секунды
Вот общая схема отправки запроса
http://support.microsoft.com/kb/168151
Но отдельно нужно смотреть, если сертификат может быть просроченным, неподписанным и т.п.
Как правило подписанные сертификаты внутри сети не используют. Поэтому приходится немного поплясать с бубном.
Если сертификат нормальный, то пройдёт всё гладко и по стандартной схеме.
PM MAIL   Вверх
GremlinProg
Дата 25.4.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 1
Всего: 106



А кто-нибудь разбирался с SSL на сокет-уровне? Интересует "низкая" реализация протокола, соответственно с использованием SSL-порта 443 и криптованием, с использованием апешки "CryptoAPI", т.е. пишем и читаем непосредственно в сокет, принимаем сертификаты тоже через сокет, без WinInet. Если есть готовые простые схемы (без частной реализации, т.е. ни чего лишнего, только SSL), выложите пожалуйста. В инете много информации, но она более, чем абстрактная, здесь нужны более конкретные структуры хотя бы по MAC- пакету и  HELLO- сообщениям.

Добавлено через 5 минут и 7 секунд
выкладывайте, пожалуйста, только рабочие вещи. По теории, оно гладко и понятно, а на практике - не всегда.

Добавлено через 9 минут и 56 секунд
или не совсем рабочие, но хотя бы с минимальными коментариями по багам


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
east
Дата 17.5.2007, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: нет
Всего: 1



Наконец дошли руки опять до клиента.
Использую WinInet, ставлю флаги для https, получаю ответ с сервера
Код
The page cannot be found
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable. 
--------------------------------------------------------------------------------

Please try the following:

Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly. 
If you reached this page by clicking a link, contact the Web site administrator to alert them that the link is incorrectly formatted. 
Click the Back button to try another link. 
HTTP Error 404 - File or directory not found.
Internet Information Services (IIS)

--------------------------------------------------------------------------------

Technical Information (for support personnel)

Go to Microsoft Product Support Services and perform a title search for the words HTTP and 404. 
Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Web Site Setup, Common Administrative Tasks, and About Custom Error Messages. 



Что не так?
PM MAIL   Вверх
Snowy
Дата 18.5.2007, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: нет
Всего: 484



404 - на сервере нет запрашиваемого файла.
Кривой урл просишь smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1088 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.