/[projects]/smsdaemon/plugins/UrlTriggerPlugin.cpp
ViewVC logotype

Annotation of /smsdaemon/plugins/UrlTriggerPlugin.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 193 - (hide annotations) (download)
Wed Dec 17 23:43:26 2008 UTC (15 years, 5 months ago) by torben
File size: 989 byte(s)
Util.*, HttpClient.*: 
	make a new Http client based on libcurl and deprecate Util::readUrl
	
WeatherPlugin.cpp, TrainInfo.cpp:
	Make use of HttpClient
	
UrlTriggerPlugin.*:
	Make a new plugin which can trigger an external webapp. and return the response back to the requester




1 torben 193 #include "UrlTriggerPlugin.h"
2    
3     #include "ISmsTransceiver.h"
4     #include "Sms.h"
5     #include "Util.h"
6    
7     #include "Logger.h"
8     #include "Exceptions.h"
9     #include "HttpClient.h"
10     #include <sstream>
11    
12     using namespace std;
13    
14     UrlTriggerPlugin::UrlTriggerPlugin(string cmd, string url)
15     : Plugin(cmd, string("URL Trigger:")+url ),
16     command(cmd), URL(url)
17     {
18     }
19    
20     void UrlTriggerPlugin::Execute(ISmsTransceiver& modem, SMS& sms)
21     {
22     ostringstream request;
23     request << URL << "?";
24     request << "sender=" << sms.GetSender() << "&";
25     request << "data=" << HttpClient::UrlEncode(sms.ExtractParameters());
26    
27     string reply;
28     try {
29     reply = HttpClient::GetString( request.str() );
30     reply = Util::str_replace(reply, "\r"); //remove carriage return
31     if (reply == "")
32     reply = "Empty reply from server !?!";
33     } catch (httpexception& e) {
34     reply = "Error: Could not execute command";
35     Logger::logMessage(string("UrlTrigger failed: ") + command + ">" + e.what() );
36     }
37    
38     modem.SendSms(sms.GetSender(), reply, true);
39     }

  ViewVC Help
Powered by ViewVC 1.1.20