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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTTPS + SOAP 
V
    Опции темы
cupper
Дата 30.5.2011, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте, нужно организовать работу по https + soap и сервисом.

В наличии имеет poco, xcerces, openssl.

Раньше не когда не работал на прямую с этими компонентами. Почитал, вроде как poco поддерживает работу по htpps благодяра openssl. Но те примеры которые я находил упирались в том что начальную сессия нужно инициализировать сертификатом с ресурса. 
Вопрос: обязательно иметь этот сертификат в наличии или можно как то переложить это на плечи библиотеки ?
Вопрос2: для работы конкретно с SOAP есть какие либо специальные компоненты, что бы не работать с ним как с голым xml. Есть ли такие компоненты в Poco (пока ненашел)? Так же нужно будет реализовывать проверку с xsd схемами.

Буду очень благодарен если кто то в терминах С++ опишет принцип работы с https и soap.
PM MAIL   Вверх
cupper
Дата 2.6.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Значит, делаю так. В начале инициализирую клиентскую сессию
Код

if(isFirst)
            {
                Poco::URI uri(properties_.sksServiceUri_);
                uri.setPort(properties_.sksServicePort_);
                tokenUri_ = uri;
            }

            tokenContext_.reset(new Context(Context::CLIENT_USE, "", "", "", Context::VERIFY_NONE));
            tokenSession_.reset(new HTTPSClientSession(tokenUri_.getHost(), tokenUri_.getPort(), tokenContext_.get()));


context пока создаю на абум, так как еще не понял как там с сертификатами.
Первый опрометчивый облом: я думал что при создании сессии будет сразу производиться соединения, и на этом этапе можно будет реализовать реконнект. Увы нихрена ничего тут не происходит.

Далее пробую отправить сообщение, любой на абум.
Код

    HTTPRequest req_post(HTTPRequest::HTTP_POST, properties_.sksServiceUri_);
    try
    {

        req_post.setVersion(HTTPRequest::HTTP_1_1);
        req_post.setContentType("text/xml");
        req_post.setContentLength(msg.size());
        req_post.set("User-Agent","FIXEdge HTTPS Transport Client/v.2");
    }catch(...){//doit}
try
{
        tokenSession_->sendRequest(req_post) << msg;

        HTTPResponse res;

        std::istream& rs = tokenSession_->receiveResponse(res);

        int stat = res.getStatus();
        string rcReason = res.getReason();
        if (stat == 200)
...
}

в ответ через некоторое время получаю исключения с "превышено время ожидания".

Теперь собстно вопрос в том как правильно задать все параметры.
PM MAIL   Вверх
cupper
Дата 2.6.2011, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если мне webService при обращении на определенный https урул выдает свой сертификат (в котором вро де как должны необходимые для меня данные быть) то как мне с Poco это реализовать ? Мне нужно самому этот сертификат скачать и подсунуть Poco, или же Poco его скачает и выдает мне ?

PS. Уху, сертификат вытаскиваю из сайт tokenSession_->serverCertificate();
PPS. Не понял что изменилось, но есть контакт smile сервер ответил ошибкой и сертификат получен. Завтра буду пробывать на все это наложить еще soap

Это сообщение отредактировал(а) cupper - 2.6.2011, 16:30
PM MAIL   Вверх
jonie
Дата 5.6.2011, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



вам проще использовать gSOAP - он из коробки умеет SSL


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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