A HTTP Client for the mbed networking libraries with HTTPFile for use with latest networking stack
Fork of HTTPClient by
An extension of the HTTPClient that adds HTTPFile. Currently on get is support and only works when getting binary files.
HTTPFile data("/local/firm.bin"); HTTPResult r = client.get("https://217.140.101.20/media/uploads/ollie8/firm.bin", &data); if (r == HTTP_OK) { }
Diff: HTTPClient.h
- Revision:
- 11:390362de8c3f
- Parent:
- 10:e1351de84c16
- Child:
- 12:89d09a6db00a
--- a/HTTPClient.h Wed Jul 18 15:40:04 2012 +0000 +++ b/HTTPClient.h Mon Jul 30 15:16:51 2012 +0000 @@ -24,7 +24,7 @@ #ifndef HTTP_CLIENT_H #define HTTP_CLIENT_H -#include "TCPSocket.h" +#include "TCPSocketConnection.h" #define HTTP_CLIENT_DEFAULT_TIMEOUT 4000 @@ -36,7 +36,6 @@ ///HTTP client results enum HTTPResult { - HTTP_OK, ///<Success HTTP_PROCESSING, ///<Processing HTTP_PARSE, ///<url Parse error HTTP_DNS, ///<Could not resolve name @@ -45,7 +44,9 @@ HTTP_REFUSED, ///<HTTP 403 Error HTTP_ERROR, ///<HTTP xxx error HTTP_TIMEOUT, ///<Connection timeout - HTTP_CONN ///<Connection error + HTTP_CONN, ///<Connection error + HTTP_CLOSED, ///<Connection was closed by remote host + HTTP_OK = 0, ///<Success }; /**A simple HTTP Client @@ -78,7 +79,7 @@ @param timeout waiting timeout in ms (osWaitForever for blocking function, not recommended) @return 0 on success, NET error (<0) on failure */ - int get(const char* url, IHTTPDataIn* pDataIn, uint32_t timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking + HTTPResult get(const char* url, IHTTPDataIn* pDataIn, uint32_t timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking /** Execute a GET request on the url Blocks until completion @@ -89,7 +90,7 @@ @param timeout waiting timeout in ms (osWaitForever for blocking function, not recommended) @return 0 on success, NET error on failure */ - int get(const char* url, char* result, size_t maxResultLen, uint32_t timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking + HTTPResult get(const char* url, char* result, size_t maxResultLen, uint32_t timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking /** Execute a POST request on the url Blocks until completion @@ -99,7 +100,7 @@ @param timeout waiting timeout in ms (osWaitForever for blocking function, not recommended) @return 0 on success, NET error on failure */ - int post(const char* url, const IHTTPDataOut& dataOut, IHTTPDataIn* pDataIn, uint32_t timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking + HTTPResult post(const char* url, const IHTTPDataOut& dataOut, IHTTPDataIn* pDataIn, uint32_t timeout = HTTP_CLIENT_DEFAULT_TIMEOUT); //Blocking /** Get last request's HTTP response code @return The HTTP response code of the last request @@ -114,13 +115,13 @@ HTTP_HEAD }; - int connect(const char* url, HTTP_METH method, IHTTPDataOut* pDataOut, IHTTPDataIn* pDataIn, uint32_t timeout); //Execute request - int recv(char* buf, size_t minLen, size_t maxLen, size_t* pReadLen); //0 on success, err code on failure - int send(char* buf, size_t len = 0); //0 on success, err code on failure - int parseURL(const char* url, char* scheme, size_t maxSchemeLen, char* host, size_t maxHostLen, uint16_t* port, char* path, size_t maxPathLen); //Parse URL + HTTPResult connect(const char* url, HTTP_METH method, IHTTPDataOut* pDataOut, IHTTPDataIn* pDataIn, uint32_t timeout); //Execute request + HTTPResult recv(char* buf, size_t minLen, size_t maxLen, size_t* pReadLen); //0 on success, err code on failure + HTTPResult send(char* buf, size_t len = 0); //0 on success, err code on failure + HTTPResult parseURL(const char* url, char* scheme, size_t maxSchemeLen, char* host, size_t maxHostLen, uint16_t* port, char* path, size_t maxPathLen); //Parse URL //Parameters - TCPSocket m_sock; + TCPSocketConnection m_sock; uint32_t m_timeout;