Murata RF modules are designed to simplify wireless development and certification by minimizing the amount of RF expertise you need to wirelessly enable a wide range of applications.

Committer:
yangcq88517
Date:
Wed Mar 16 15:04:46 2016 +0000
Revision:
9:0ce800923eda
Parent:
3:90ea1b8b2621
bug fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangcq88517 0:8e83b9448758 1 #ifndef SmartLab_MuRata_Type_HTTPContent
yangcq88517 0:8e83b9448758 2 #define SmartLab_MuRata_Type_HTTPContent
yangcq88517 0:8e83b9448758 3
yangcq88517 0:8e83b9448758 4 #include <string>
yangcq88517 0:8e83b9448758 5 #include <map>
yangcq88517 0:8e83b9448758 6
yangcq88517 0:8e83b9448758 7 #include "HTTPMethod.h"
yangcq88517 0:8e83b9448758 8
yangcq88517 0:8e83b9448758 9 using namespace std;
yangcq88517 0:8e83b9448758 10
yangcq88517 0:8e83b9448758 11 namespace SmartLabMuRata
yangcq88517 0:8e83b9448758 12 {
yangcq88517 0:8e83b9448758 13 class HTTPContent
yangcq88517 0:8e83b9448758 14 {
yangcq88517 0:8e83b9448758 15 private:
yangcq88517 0:8e83b9448758 16 const static char HEADER_SEPARATE[];
yangcq88517 0:8e83b9448758 17 const static char HEADER_TEMINATE[];
yangcq88517 0:8e83b9448758 18
yangcq88517 3:90ea1b8b2621 19 int remotePort;
yangcq88517 3:90ea1b8b2621 20 int contentLength;
yangcq88517 0:8e83b9448758 21 HTTPMethod method;
yangcq88517 0:8e83b9448758 22 char timeout;
yangcq88517 0:8e83b9448758 23
yangcq88517 0:8e83b9448758 24 string remoteHost;
yangcq88517 0:8e83b9448758 25 string uri;
yangcq88517 0:8e83b9448758 26 string contentType;
yangcq88517 0:8e83b9448758 27
yangcq88517 0:8e83b9448758 28 map<const char *, const char *> otherHeaders;
yangcq88517 0:8e83b9448758 29
yangcq88517 0:8e83b9448758 30 char * body;
yangcq88517 0:8e83b9448758 31
yangcq88517 0:8e83b9448758 32 /// <summary>
yangcq88517 0:8e83b9448758 33 /// URI, Content Type, and Other header are all NUL terminated char strings. URI must be specified, e.g., “index.htm”. If Content Type is an empty string, the default will be “text/plain”. If it is a GET,
yangcq88517 0:8e83b9448758 34 /// </summary>
yangcq88517 0:8e83b9448758 35 /// <param name="method"></param>
yangcq88517 0:8e83b9448758 36 /// <param name="remoteHost"></param>
yangcq88517 0:8e83b9448758 37 /// <param name="remotePort"></param>
yangcq88517 0:8e83b9448758 38 /// <param name="uri"></param>
yangcq88517 0:8e83b9448758 39 /// <param name="timeout"></param>
yangcq88517 0:8e83b9448758 40 /// <param name="contentType"></param>
yangcq88517 0:8e83b9448758 41 public :
yangcq88517 0:8e83b9448758 42
yangcq88517 0:8e83b9448758 43 HTTPContent(const HTTPMethod method, const char * remoteHost,const int remotePort,const char * uri,const char timeout, const char * contentType = NULL);
yangcq88517 0:8e83b9448758 44
yangcq88517 2:f8e393a81c25 45 ~HTTPContent();
yangcq88517 0:8e83b9448758 46
yangcq88517 0:8e83b9448758 47 HTTPMethod GetMethod();
yangcq88517 0:8e83b9448758 48
yangcq88517 0:8e83b9448758 49 HTTPContent * SetMethod(const HTTPMethod method);
yangcq88517 0:8e83b9448758 50
yangcq88517 0:8e83b9448758 51 char GetTimeout();
yangcq88517 0:8e83b9448758 52
yangcq88517 0:8e83b9448758 53 /// <summary>
yangcq88517 0:8e83b9448758 54 /// Timeout is in seconds. If Timeout is 0, it means wait forever. A complete HTTP request will block other commands until either a response is received or timeout. So timeout value of 0 is not recommended. If timeout happens, the response status code would be SNIC_TIMEOUT. If it is chunked encoding in the response, the last chunk should be received before Timeout; otherwise, the connection is closed. If the HTTP request has more data to send (POST), it is not considered a complete HTTP request, and other commands are not blocked until the series of SNIC_HTTP_MORE_REQ are finished.
yangcq88517 0:8e83b9448758 55 /// </summary>
yangcq88517 0:8e83b9448758 56 /// <param name="timeout"></param>
yangcq88517 0:8e83b9448758 57 /// <returns></returns>
yangcq88517 0:8e83b9448758 58 HTTPContent * SetTimeout(const char timeout);
yangcq88517 0:8e83b9448758 59
yangcq88517 0:8e83b9448758 60 int GetRemotePort();
yangcq88517 0:8e83b9448758 61
yangcq88517 0:8e83b9448758 62 HTTPContent * SetRemotePort(const int port);
yangcq88517 0:8e83b9448758 63
yangcq88517 2:f8e393a81c25 64 const char * GetRemoteHost() ;
yangcq88517 0:8e83b9448758 65
yangcq88517 0:8e83b9448758 66 HTTPContent * SetRemoteHost(const char * host);
yangcq88517 0:8e83b9448758 67
yangcq88517 2:f8e393a81c25 68 const char * GetURI();
yangcq88517 0:8e83b9448758 69
yangcq88517 0:8e83b9448758 70 HTTPContent * SetURI(const char * uri) ;
yangcq88517 0:8e83b9448758 71
yangcq88517 2:f8e393a81c25 72 const char * GetContentType();
yangcq88517 0:8e83b9448758 73
yangcq88517 0:8e83b9448758 74 HTTPContent * SetContentType(const char * contentType);
yangcq88517 0:8e83b9448758 75
yangcq88517 0:8e83b9448758 76 //const string * GetOtherHeader(const string * key);
yangcq88517 0:8e83b9448758 77
yangcq88517 0:8e83b9448758 78 HTTPContent * SetOtherHeader(const char * key, const char * value);
yangcq88517 0:8e83b9448758 79
yangcq88517 0:8e83b9448758 80 void GetOtherHeaders(string * headers);
yangcq88517 0:8e83b9448758 81
yangcq88517 0:8e83b9448758 82 const char * GetBody();
yangcq88517 0:8e83b9448758 83
yangcq88517 0:8e83b9448758 84 HTTPContent * SetBody(char * body, int offset, int length);
yangcq88517 0:8e83b9448758 85
yangcq88517 0:8e83b9448758 86 HTTPContent * ClearBody();
yangcq88517 0:8e83b9448758 87
yangcq88517 0:8e83b9448758 88 int GetContentLength();
yangcq88517 0:8e83b9448758 89
yangcq88517 0:8e83b9448758 90 };
yangcq88517 0:8e83b9448758 91 }
yangcq88517 0:8e83b9448758 92
yangcq88517 0:8e83b9448758 93 #endif