Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SalesforceInterface df-2014-heroku-thermostat-k64f SalesforceInterface
Fork of HTTPClient by
Revision 29:2d96cc752d19, committed 2014-08-27
- Comitter:
- ansond
- Date:
- Wed Aug 27 20:30:29 2014 +0000
- Parent:
- 28:6fbaf49cc109
- Child:
- 30:6fef375c94e6
- Commit message:
- added HTTPJson data type and created defines for increased url lengths
Changed in this revision
--- a/HTTPClient.cpp Wed Aug 27 18:10:09 2014 +0000
+++ b/HTTPClient.cpp Wed Aug 27 20:30:29 2014 +0000
@@ -16,6 +16,10 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+
+// DMA: Added tunable to adapt size of larger input URLs
+#define MAX_URL_HOSTNAME_LENGTH 128
+#define MAX_URL_PATH_LENGTH 128
//Debug is disabled by default
#if 0
@@ -231,8 +235,8 @@
}
char scheme[8];
- char host[128];
- char path[128];
+ char host[MAX_URL_HOSTNAME_LENGTH];
+ char path[MAX_URL_PATH_LENGTH];
int ret ;
--- a/HTTPClient.h Wed Aug 27 18:10:09 2014 +0000 +++ b/HTTPClient.h Wed Aug 27 20:30:29 2014 +0000 @@ -165,7 +165,7 @@ }; //Including data containers here for more convenience -#include "data/HTTPText.h" +#include "data/HTTPJson.h" #include "data/HTTPMap.h" #endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/HTTPJson.cpp Wed Aug 27 20:30:29 2014 +0000
@@ -0,0 +1,41 @@
+/* HTTPJson.cpp */
+/* Copyright (C) 2012 mbed.org, MIT License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ * and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "HTTPJson.h"
+
+#define OK 0
+
+using std::strncpy;
+
+HTTPJson::HTTPJson(char* json_str) : HTTPText(json_str)
+{
+
+}
+
+HTTPJson::HTTPJson(char* json_str, size_t size) : HTTPText(json_str,size)
+{
+
+}
+
+/*virtual*/ int HTTPJson::getDataType(char* type, size_t maxTypeLen) //Internet media type for Content-Type header
+{
+ strncpy(type, "application/json", maxTypeLen-1);
+ type[maxTypeLen-1] = '\0';
+ return OK;
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/HTTPJson.h Wed Aug 27 20:30:29 2014 +0000
@@ -0,0 +1,46 @@
+/* HTTPJson.h */
+/* Copyright (C) 2012 mbed.org, MIT License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ * and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#ifndef HTTPJSON_H_
+#define HTTPJSON_H_
+
+#include "HTTPText.h"
+
+/** A data endpoint to store JSON text
+*/
+class HTTPJson : public HTTPText
+{
+public:
+ /** Create an HTTPJson instance for output
+ * @param json_str JSON string to be transmitted
+ */
+ HTTPJson(char* json_str);
+
+ /** Create an HTTPText instance for input
+ * @param json_str Buffer to store the incoming JSON string
+ * @param size Size of the buffer
+ */
+ HTTPJson(char* json_str, size_t size);
+
+protected:
+ virtual int getDataType(char* type, size_t maxTypeLen); //Internet media type for Content-Type header
+};
+
+#endif /* HTTPJSON_H_ */
\ No newline at end of file
--- a/data/HTTPText.cpp Wed Aug 27 18:10:09 2014 +0000
+++ b/data/HTTPText.cpp Wed Aug 27 20:30:29 2014 +0000
@@ -55,7 +55,7 @@
/*virtual*/ int HTTPText::getDataType(char* type, size_t maxTypeLen) //Internet media type for Content-Type header
{
- strncpy(type, "application/json", maxTypeLen-1);
+ strncpy(type, "plain/text", maxTypeLen-1);
type[maxTypeLen-1] = '\0';
return OK;
}
