u-blox modem HTTP client test

Dependencies:   UbloxUSBModem mbed

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Tue Jun 03 11:30:51 2014 +0100
Parent:
5:dcad6eda763e
Commit message:
Synchronized with git revision bcacbb9fbf3432829227430830cca4315b57c1b9

Full URL: https://github.com/mbedmicro/mbed/commit/bcacbb9fbf3432829227430830cca4315b57c1b9/

Changed in this revision

HTTPClient/HTTPClient.cpp Show annotated file Show diff for this revision Revisions of this file
HTTPClient/HTTPClient.h Show annotated file Show diff for this revision Revisions of this file
HTTPClient/IHTTPData.h Show annotated file Show diff for this revision Revisions of this file
HTTPClient/data/HTTPText.h Show annotated file Show diff for this revision Revisions of this file
httptest.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r dcad6eda763e -r d17e425e9425 HTTPClient/HTTPClient.cpp
--- a/HTTPClient/HTTPClient.cpp	Mon Nov 04 09:00:29 2013 +0000
+++ b/HTTPClient/HTTPClient.cpp	Tue Jun 03 11:30:51 2014 +0100
@@ -21,15 +21,15 @@
 #if 0
 //Enable debug
 #include <cstdio>
-#define DBG(x, ...) std::printf("[HTTPClient : DBG]"x"\r\n", ##__VA_ARGS__); 
-#define WARN(x, ...) std::printf("[HTTPClient : WARN]"x"\r\n", ##__VA_ARGS__); 
-#define ERR(x, ...) std::printf("[HTTPClient : ERR]"x"\r\n", ##__VA_ARGS__); 
+#define DBG(x, ...) std::printf("[HTTPClient : DBG]"x"\r\n", ##__VA_ARGS__);
+#define WARN(x, ...) std::printf("[HTTPClient : WARN]"x"\r\n", ##__VA_ARGS__);
+#define ERR(x, ...) std::printf("[HTTPClient : ERR]"x"\r\n", ##__VA_ARGS__);
 
 #else
 //Disable debug
-#define DBG(x, ...) 
+#define DBG(x, ...)
 #define WARN(x, ...)
-#define ERR(x, ...) 
+#define ERR(x, ...)
 
 #endif
 
@@ -114,10 +114,10 @@
   } while(0)
 
 HTTPResult HTTPClient::connect(const char* url, HTTP_METH method, IHTTPDataOut* pDataOut, IHTTPDataIn* pDataIn, int timeout) //Execute request
-{ 
+{
   m_httpResponseCode = 0; //Invalidate code
   m_timeout = timeout;
-  
+
   pDataIn->writeReset();
   if( pDataOut )
   {
@@ -194,14 +194,14 @@
       CHECK_CONN_ERR(ret);
     }
   }
-  
+
   //Close headers
   DBG("Headers sent");
   ret = send("\r\n");
   CHECK_CONN_ERR(ret);
 
   size_t trfLen;
-  
+
   //Send data (if available)
   if( pDataOut != NULL )
   {
@@ -249,7 +249,7 @@
     }
 
   }
-  
+
   //Receive response
   DBG("Receiving response");
   ret = recv(buf, CHUNK_SIZE - 1, CHUNK_SIZE - 1, &trfLen); //Read n bytes
@@ -276,7 +276,7 @@
 
   if( (m_httpResponseCode < 200) || (m_httpResponseCode >= 300) )
   {
-    //Did not return a 2xx code; TODO fetch headers/(&data?) anyway and implement a mean of writing/reading headers 
+    //Did not return a 2xx code; TODO fetch headers/(&data?) anyway and implement a mean of writing/reading headers
     WARN("Response code %d", m_httpResponseCode);
     PRTCL_ERR();
   }
@@ -484,13 +484,13 @@
 {
   DBG("Trying to read between %d and %d bytes", minLen, maxLen);
   size_t readLen = 0;
-      
+
   if(!m_sock.is_connected())
   {
     WARN("Connection was closed by server");
-    return HTTP_CLOSED; //Connection was closed by server 
+    return HTTP_CLOSED; //Connection was closed by server
   }
-    
+
   int ret;
   while(readLen < maxLen)
   {
@@ -506,7 +506,7 @@
       m_sock.set_blocking(false, 0);
       ret = m_sock.receive(buf + readLen, maxLen - readLen);
     }
-    
+
     if( ret > 0)
     {
       readLen += ret;
@@ -525,10 +525,10 @@
       }
       else
       {
-        break;      
+        break;
       }
     }
-    
+
     if(!m_sock.is_connected())
     {
       break;
@@ -547,13 +547,13 @@
   }
   DBG("Trying to write %d bytes", len);
   size_t writtenLen = 0;
-    
+
   if(!m_sock.is_connected())
   {
     WARN("Connection was closed by server");
-    return HTTP_CLOSED; //Connection was closed by server 
+    return HTTP_CLOSED; //Connection was closed by server
   }
-  
+
   m_sock.set_blocking(false, m_timeout);
   int ret = m_sock.send_all(buf, len);
   if(ret > 0)
@@ -570,7 +570,7 @@
     ERR("Connection error (send returned %d)", ret);
     return HTTP_CONN;
   }
-  
+
   DBG("Written %d bytes", writtenLen);
   return HTTP_OK;
 }
diff -r dcad6eda763e -r d17e425e9425 HTTPClient/HTTPClient.h
--- a/HTTPClient/HTTPClient.h	Mon Nov 04 09:00:29 2013 +0000
+++ b/HTTPClient/HTTPClient.h	Tue Jun 03 11:30:51 2014 +0100
@@ -60,7 +60,7 @@
   ///Instantiate the HTTP client
   HTTPClient();
   ~HTTPClient();
-  
+
 #if 0 //TODO add header handlers
   /**
   Provides a basic authentification feature (Base64 encoded username and password)
@@ -70,7 +70,7 @@
   */
   void basicAuth(const char* user, const char* password); //Basic Authentification
 #endif
-  
+
   //High Level setup functions
   /** Execute a GET request on the URL
   Blocks until completion
@@ -80,7 +80,7 @@
   @return 0 on success, HTTP error (<0) on failure
   */
   HTTPResult get(const char* url, IHTTPDataIn* pDataIn, int timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking
-  
+
   /** Execute a GET request on the URL
   Blocks until completion
   This is a helper to directly get a piece of text from a HTTP result
@@ -101,7 +101,7 @@
   @return 0 on success, HTTP error (<0) on failure
   */
   HTTPResult post(const char* url, const IHTTPDataOut& dataOut, IHTTPDataIn* pDataIn, int timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking
-  
+
   /** Execute a PUT request on the URL
   Blocks until completion
   @param url : url on which to execute the request
@@ -111,7 +111,7 @@
   @return 0 on success, HTTP error (<0) on failure
   */
   HTTPResult put(const char* url, const IHTTPDataOut& dataOut, IHTTPDataIn* pDataIn, int timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking
-  
+
   /** Execute a DELETE request on the URL
   Blocks until completion
   @param url : url on which to execute the request
@@ -120,12 +120,12 @@
   @return 0 on success, HTTP error (<0) on failure
   */
   HTTPResult del(const char* url, IHTTPDataIn* pDataIn, int timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking
-  
+
   /** Get last request's HTTP response code
   @return The HTTP response code of the last request
   */
   int getHTTPResponseCode();
-  
+
 private:
   enum HTTP_METH
   {
@@ -143,7 +143,7 @@
 
   //Parameters
   TCPSocketConnection m_sock;
-  
+
   int m_timeout;
 
   const char* m_basicAuthUser;
diff -r dcad6eda763e -r d17e425e9425 HTTPClient/IHTTPData.h
--- a/HTTPClient/IHTTPData.h	Mon Nov 04 09:00:29 2013 +0000
+++ b/HTTPClient/IHTTPData.h	Tue Jun 03 11:30:51 2014 +0100
@@ -29,8 +29,8 @@
 {
 protected:
   friend class HTTPClient;
-  
-  /** Reset stream to its beginning 
+
+  /** Reset stream to its beginning
    * Called by the HTTPClient on each new request
    */
   virtual void readReset() = 0;
@@ -41,17 +41,17 @@
    * @param pReadLen Pointer to the variable on which the actual copied data length will be stored
    */
   virtual int read(char* buf, size_t len, size_t* pReadLen) = 0;
-  
+
   /** Get MIME type
    * @param type Internet media type from Content-Type header
    */
   virtual int getDataType(char* type, size_t maxTypeLen) = 0; //Internet media type for Content-Type header
-  
+
   /** Determine whether the HTTP client should chunk the data
    *  Used for Transfer-Encoding header
    */
   virtual bool getIsChunked() = 0;
-  
+
   /** If the data is not chunked, get its size
    *  Used for Content-Length header
    */
@@ -65,7 +65,7 @@
 protected:
   friend class HTTPClient;
 
-  /** Reset stream to its beginning 
+  /** Reset stream to its beginning
    * Called by the HTTPClient on each new request
    */
   virtual void writeReset() = 0;
@@ -85,7 +85,7 @@
    *  Recovered from Transfer-Encoding header
    */
   virtual void setIsChunked(bool chunked) = 0;
-  
+
   /** If the data is not chunked, set its size
    * From Content-Length header
    */
diff -r dcad6eda763e -r d17e425e9425 HTTPClient/data/HTTPText.h
--- a/HTTPClient/data/HTTPText.h	Mon Nov 04 09:00:29 2013 +0000
+++ b/HTTPClient/data/HTTPText.h	Tue Jun 03 11:30:51 2014 +0100
@@ -42,7 +42,7 @@
 protected:
   //IHTTPDataIn
   virtual void readReset();
-  
+
   virtual int read(char* buf, size_t len, size_t* pReadLen);
 
   virtual int getDataType(char* type, size_t maxTypeLen); //Internet media type for Content-Type header
@@ -53,7 +53,7 @@
 
   //IHTTPDataOut
   virtual void writeReset();
-  
+
   virtual int write(const char* buf, size_t len);
 
   virtual void setDataType(const char* type); //Internet media type from Content-Type header
diff -r dcad6eda763e -r d17e425e9425 httptest.cpp
--- a/httptest.cpp	Mon Nov 04 09:00:29 2013 +0000
+++ b/httptest.cpp	Tue Jun 03 11:30:51 2014 +0100
@@ -4,9 +4,9 @@
 #include "httptest.h"
 
 int httptest(CellularModem& modem, const char* apn, const char* username, const char* password)
-{    
+{
     printf("Connecting...\n");
-    
+
     HTTPClient http;
     char str[512];
 
@@ -18,7 +18,7 @@
       printf("Could not connect\n");
       return false;
     }
-    
+
     //GET data
     printf("Trying to fetch page...\n");
     ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128);
@@ -33,7 +33,7 @@
       modem.disconnect();
       return false;
     }
-    
+
     //POST data
     HTTPMap map;
     HTTPText text(str, 512);
@@ -52,7 +52,7 @@
       modem.disconnect();
       return false;
     }
-    
+
     modem.disconnect();
     return true;
 }