Commit 11024403 authored by Pavel Vainerman's avatar Pavel Vainerman

[http-client]: timeout processing

parent ca13e446
...@@ -21,11 +21,13 @@ ...@@ -21,11 +21,13 @@
#include <string> #include <string>
#include <Poco/Net/HTTPClientSession.h> #include <Poco/Net/HTTPClientSession.h>
#include "DebugStream.h" #include "DebugStream.h"
#include "PassiveTimer.h"
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
namespace uniset namespace uniset
{ {
namespace UHttp namespace UHttp
{ {
/*! Simple http client interface */
class UHttpClient class UHttpClient
{ {
public: public:
...@@ -33,10 +35,15 @@ namespace uniset ...@@ -33,10 +35,15 @@ namespace uniset
UHttpClient(); UHttpClient();
virtual ~UHttpClient(); virtual ~UHttpClient();
// http://site.com/query?params // request example: http://site.com/query?params
// \return "" // \return "" if fail
std::string get( const std::string& host, int port, const std::string& request ); std::string get( const std::string& host, int port, const std::string& request );
void setTimeout( uniset::timeout_t usec );
// in microseconds
uniset::timeout_t getTimeout();
protected: protected:
Poco::Net::HTTPClientSession session; Poco::Net::HTTPClientSession session;
......
...@@ -38,21 +38,36 @@ namespace uniset ...@@ -38,21 +38,36 @@ namespace uniset
{ {
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void UHttpClient::setTimeout( uniset::timeout_t usec )
{
session.setTimeout( uniset::PassiveTimer::microsecToPoco(usec));
}
// -------------------------------------------------------------------------
uniset::timeout_t UHttpClient::getTimeout()
{
return session.getTimeout().totalMicroseconds();
}
// -------------------------------------------------------------------------
std::string UHttpClient::get( const std::string& host, int port, const std::string& query ) std::string UHttpClient::get( const std::string& host, int port, const std::string& query )
{ {
session.setHost(host); session.setHost(host);
session.setPort(port); session.setPort(port);
HTTPRequest request(HTTPRequest::HTTP_GET, query, HTTPMessage::HTTP_1_1); HTTPRequest request(HTTPRequest::HTTP_GET, query, HTTPMessage::HTTP_1_1);
session.sendRequest(request); try
HTTPResponse response; {
std::istream& rs = session.receiveResponse(response); session.sendRequest(request);
HTTPResponse response;
std::istream& rs = session.receiveResponse(response);
if( response.getStatus() != Poco::Net::HTTPResponse::HTTP_OK )
return "";
if( response.getStatus() != Poco::Net::HTTPResponse::HTTP_OK ) std::stringstream ret;
return ""; Poco::StreamCopier::copyStream(rs, ret);
return ret.str();
}
catch( const std::exception& e ){}
std::stringstream ret; return "";
Poco::StreamCopier::copyStream(rs, ret);
return ret.str();
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
} // end of namespace uniset } // end of namespace uniset
......
...@@ -190,6 +190,43 @@ ...@@ -190,6 +190,43 @@
./extensions/SMViewer/Makefile.am ./extensions/SMViewer/Makefile.am
./extensions/SMViewer/SMViewer.cc ./extensions/SMViewer/SMViewer.cc
./extensions/SMViewer/SMViewer.h ./extensions/SMViewer/SMViewer.h
./extensions/tests1/Makefile.am
./extensions/tests1/MBSlaveTest/Makefile.am
./extensions/tests1/MBSlaveTest/mbslave-test.cc
./extensions/tests1/MBSlaveTest/TestProc.cc
./extensions/tests1/MBSlaveTest/TestProc.h
./extensions/tests1/MBSlaveTest/testproc.src.xml
./extensions/tests1/MQPerfTest/Makefile.am
./extensions/tests1/MQPerfTest/mq-test.cc
./extensions/tests1/MQPerfTest/TestProc.cc
./extensions/tests1/MQPerfTest/TestProc.h
./extensions/tests1/MQPerfTest/testproc.src.xml
./extensions/tests1/r/t.cc
./extensions/tests1/SMemoryTest/LostPassiveTestProc.cc
./extensions/tests1/SMemoryTest/LostPassiveTestProc.h
./extensions/tests1/SMemoryTest/LostTestProc.cc
./extensions/tests1/SMemoryTest/LostTestProc.h
./extensions/tests1/SMemoryTest/losttestproc.src.xml
./extensions/tests1/SMemoryTest/Makefile.am
./extensions/tests1/SMemoryTest/smemory-test.cc
./extensions/tests1/SMemoryTest/sm-lostmessage-test.cc
./extensions/tests1/SMemoryTest/TestProc.cc
./extensions/tests1/SMemoryTest/TestProc.h
./extensions/tests1/SMemoryTest/testproc.src.xml
./extensions/tests1/sm_perf_test2.cc
./extensions/tests1/sm_perf_test.cc
./extensions/tests1/sz.cc
./extensions/tests1/test_calibration.cc
./extensions/tests1/test_digitalfilter.cc
./extensions/tests1/test_iobase.cc
./extensions/tests1/test_iobase_with_sm.cc
./extensions/tests1/test_restapi_uniset.cc
./extensions/tests1/tests.cc
./extensions/tests1/tests_with_conf.cc
./extensions/tests1/tests_with_sm.cc
./extensions/tests1/tests_with_sm.h
./extensions/tests1/test_ui.cc
./extensions/tests1/test_vtypes.cc
./extensions/tests/Makefile.am ./extensions/tests/Makefile.am
./extensions/tests/MBSlaveTest/Makefile.am ./extensions/tests/MBSlaveTest/Makefile.am
./extensions/tests/MBSlaveTest/mbslave-test.cc ./extensions/tests/MBSlaveTest/mbslave-test.cc
...@@ -232,6 +269,7 @@ ...@@ -232,6 +269,7 @@
./extensions/UNetUDP/tests/Makefile.am ./extensions/UNetUDP/tests/Makefile.am
./extensions/UNetUDP/tests/tests_individual_process.cc ./extensions/UNetUDP/tests/tests_individual_process.cc
./extensions/UNetUDP/tests/tests_with_sm.cc ./extensions/UNetUDP/tests/tests_with_sm.cc
./extensions/UNetUDP/tests/test_unetudp1.cc
./extensions/UNetUDP/tests/test_unetudp.cc ./extensions/UNetUDP/tests/test_unetudp.cc
./extensions/UNetUDP/tests/u.cc ./extensions/UNetUDP/tests/u.cc
./extensions/UNetUDP/tests/urecv_perf_test.cc ./extensions/UNetUDP/tests/urecv_perf_test.cc
...@@ -336,7 +374,6 @@ ...@@ -336,7 +374,6 @@
./include/unisetstd.h ./include/unisetstd.h
./include/UniSetTypes.h ./include/UniSetTypes.h
./include/UniXML.h ./include/UniXML.h
./include/UResolver.h
./include/USocket.h ./include/USocket.h
./include/UTCPCore.h ./include/UTCPCore.h
./include/UTCPSocket.h ./include/UTCPSocket.h
...@@ -386,8 +423,6 @@ ...@@ -386,8 +423,6 @@
./src/Core/UniSetObject_iSK.cc ./src/Core/UniSetObject_iSK.cc
./src/Core/UniSetTypes.cc ./src/Core/UniSetTypes.cc
./src/Core/UniSetTypes_iSK.cc ./src/Core/UniSetTypes_iSK.cc
./src/Core/UResolver.cc
./src/Core/UResolver_iSK.cc
./src/Log/Debug.cc ./src/Log/Debug.cc
./src/Log/DebugExtBuf.h ./src/Log/DebugExtBuf.h
./src/Log/DebugStream.cc ./src/Log/DebugStream.cc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment