Не могу отправить запрос на мыло с Poco - PullRequest
0 голосов
/ 18 июня 2019

У меня проблема с Poco, я пытаюсь отправить запрос на тестирование мыльного веб-сервиса, когда я следовал этому учебнику Я получил WS, работающий в SoapUI, но когда я попытался сделать то же самое в моемкод Я получаю эту ошибку

{000000} 2019-06-18 10: 56: 21.726.259 Poco: Тайм-аут ОШИБКИ

Вот что я сделал в SoapUI: enter image description here Как вы видите, я получил ответ (в течение секунды), но я не мог сделать то же самое с Poco

    string paramUri("http://www.dataaccess.com:80/webservicesserver/numberconversion.wso");
    URI uri(paramUri);
    m_rwPathLogin = uri.getPathAndQuery();      
    HTTPClientSession session(uri.getHost(), uri.getPort());
    HTTPRequest request(HTTPRequest::HTTP_POST, m_rwPathLogin, HTTPMessage::HTTP_1_1);

    HTTPResponse response;
    std::cout << response.getStatus() << " " << response.getReason() <<std::endl;
    std::ostringstream stream;
    std::string str;
    std::ifstream fichier(fileTemps);
    while (std::getline(fichier, str))
    {
        stream << str << "\n";
        cout << str; //works
    }

    std::string doc = stream.str();

    request.setKeepAlive(true);

    request.setContentLength(doc.size());
    cout << "used req uri " << request.getURI() << endl; //works
    request.setContentType("text/xml");
    response.setContentType("text/xml");
    cout << "used port " << session.getPort() << endl;//works
    cout << "used host " << session.getHost() << endl;//works

    request.write(std::cout);
    std::ostream& requestStream = session.sendRequest(request);
    requestStream << doc;
    cout << "ok" << endl; //not working (ERROR Timeout)
    request.write(std::cout);

    std::istream& rs = session.receiveResponse(response);
    std::cout << response.getStatus() << " " << response.getReason() << std::endl; //not working

Я даже пытался увеличить время ожидания с session.setTimeout(Poco::Timespan(20, 0)); но все еще без надежды.

Вот содержание на fileTemps

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.dataaccess.com/webservicesserver/" xmlns:sch="http://www.dataaccess.com/webservicesserver/schema">
   <soapenv:Header/>
   <soapenv:Body>
      <web:NumberToDollars>
         <web:dNum>123</web:dNum>
      </web:NumberToDollars>
   </soapenv:Body>
</soapenv:Envelope>
...