A simple web service over HTTP library. Calls a HTTP server via GET, and returns the response wrapped in a XML parser. All calls are synchronous. Needs the NetServicesMin, DNSResolver, TcpLineStream and spxml libraries. The code for URL handling has been copied directly from the original NetServices library (Thanks to Donatien!).

Revision:
1:62e112d14c8f
Parent:
0:5e8527b638e1
Child:
2:687430e7f63a
--- a/webservice.h	Tue Jan 11 23:00:09 2011 +0000
+++ b/webservice.h	Sat Jan 29 23:29:41 2011 +0000
@@ -1,58 +1,48 @@
-#ifndef __WEBSERVICE_H__
-#define __WEBSERVICE_H__
-
-#include "spdomparser.hpp"
-
-#include "TCPSocket.h"
-
-#include "url.h"
-
-#define BUFSIZE 256
-
-/**
-A simple web service over HTTP library. Calls a HTTP server via GET, and returns the response wrapped in a XML parser. All calls are synchronous.
-Needs the NetServicesMin and DNSResolver library
-The code for URL handling has been copied directly from the original NetServices library (Thanks to Donatien!).
-
-*/
-class WebService
-{
-    public:
-        /**
-            create the web service instance.
-            @params url the URL to call via GET
-        */
-        WebService(const char* url);
-        /**
-            Execute the web service call. Note that the caller is responsible for freeing the return parser instance.
-            @return the XML parser, or NULL if an error occured
-        */
-        SP_XmlDomParser *callService();
-        /**
-            close all resources
-        */
-        ~WebService(){close();};
-        /**
-            close all resources
-        */
-        void close();
-        
-    private:
-        void onTCPSocketEvent(TCPSocketEvent e);
-        string readResponseLine();
-        
-        const char* _url;
-        bool _connecting;
-        bool _connected;
-        bool _closed;
-        TCPSocket _socket;
-
-        char _readbuf[BUFSIZE];
-        int _readpos;
-        int _readlen;
-        
-};
-
-
-
+#ifndef __WEBSERVICE_H__
+#define __WEBSERVICE_H__
+
+#include "spdomparser.hpp"
+
+#include "url.h"
+
+#include "tcplinestream.h"
+
+/**
+A simple web service over HTTP library. Calls a HTTP server via GET, and returns the response wrapped in a XML parser. All calls are synchronous.
+Needs the NetServicesMin and DNSResolver library
+The code for URL handling has been copied directly from the original NetServices library (Thanks to Donatien!).
+
+*/
+class WebService
+{
+    public:
+        /**
+            create the web service instance.
+            @params urlStr the URL to call via GET
+        */
+        WebService(const char* urlStr);
+        /**
+            Execute the web service call. Note that the caller is responsible for freeing the return parser instance.
+            @return the XML parser, or NULL if an error occured
+        */
+        SP_XmlDomParser *callService();
+        /**
+            close all resources
+        */
+        ~WebService(){close();};
+        /**
+            close all resources
+        */
+        void close();
+        
+    private:
+        void init();
+        
+        string _request;
+        
+        TCPLineStream *_stream;
+};
+
+
+
 #endif
\ No newline at end of file