Fork of the working HTTPClient adaptation using CyaSSL. This version adds a derivation of HTTPText called HTTPJson to emit JSON text properly. Additionally, the URL parser has defines that permit longer URLs to be utilized.

Dependencies:   mbedTLSLibrary

Dependents:   SalesforceInterface df-2014-heroku-thermostat-k64f SalesforceInterface

Fork of HTTPClient by wolf SSL

This is a fork of the working HTTPS/SSL library that contains two extensions:

- HTTPJson - a derivation of HTTPText for emitting JSON strings specifically. No JSON parsing/checking is accomplished - HTTPJson simply sets the right Content-Type for HTTP(S).

- Expanded internal buffers for longer URLs. This is set in HTTPClient.cpp and is tunable.

Revision:
33:b663a5bab72d
Parent:
32:d9db238bb8a3
Child:
34:7a7e395f8df3
--- a/HTTPClient.cpp	Thu Aug 28 00:07:09 2014 +0000
+++ b/HTTPClient.cpp	Fri Aug 29 04:22:38 2014 +0000
@@ -22,7 +22,7 @@
 #define MAX_URL_PATH_LENGTH     128
 
 //Debug is disabled by default
-#if 0
+#if 1
 //Enable debug
 #include <cstdio>
 #define DBG(x, ...) std::printf("[HTTPClient : DBG]"x"\r\n", ##__VA_ARGS__);
@@ -314,11 +314,16 @@
                 return HTTP_CONN;
             }
         }
-
+        
         DBG("ctx=%x, ssl=%x, ssl->ctx->CBIORecv, CBIOSend=%x, %x\n",
             ctx, ssl, SocketReceive, SocketSend ) ;
-        if (CyaSSL_connect(ssl) != SSL_SUCCESS) {
+        int result = CyaSSL_connect(ssl); 
+        if (result != SSL_SUCCESS) {
             ERR("SSL_connect failed");
+            int err = CyaSSL_get_error(ssl, result);
+            char errorString[80];
+            CyaSSL_ERR_error_string(err, errorString);
+            ERR("SSL Error: %s (err=%d,status=%d)",errorString,err,result);
             cyassl_free() ;
             return HTTP_CONN;
         }