my fork
Fork of HTTPClient by
Diff: HTTPClient.cpp
- Revision:
- 33:77082c88748a
- Parent:
- 32:9aadb8a34e80
- Child:
- 34:76aa4f4021c1
--- a/HTTPClient.cpp Mon Jul 20 09:21:07 2015 +0000 +++ b/HTTPClient.cpp Tue Jul 21 01:07:25 2015 +0000 @@ -111,9 +111,7 @@ HTTPClient::HTTPClient() : m_basicAuthUser(NULL), m_basicAuthPassword(NULL), m_httpResponseCode(0) { - WOLF_DEBUG_ON ; - ctx = 0 ; ssl = 0 ; SSLver = 3 ; @@ -121,6 +119,8 @@ redirect_url = NULL ; redirect = 0 ; header = NULL ; + dumpReqH = false ; + dumpResH = false ; } HTTPClient::~HTTPClient() @@ -177,6 +177,16 @@ header = h ; } +void HTTPClient::dumpReqHeader(bool sw) +{ + dumpReqH = sw ; +} + +void HTTPClient::dumpResHeader(bool sw) +{ + dumpResH = sw ; +} + void HTTPClient::setLocationBuf(char * url, int size) { redirect_url = url ; @@ -210,6 +220,11 @@ return HTTP_PRTCL; \ } while(0) +#define DUMP_REQ_HEADER(buff) \ + if(dumpReqH)printf("%s", buff) ; +#define DUMP_RES_HEADER(buff) \ + if(dumpResH)printf("%s\n", buff) ; + void HTTPClient::wolfssl_free(void) { if(ssl) { @@ -259,7 +274,7 @@ DBG("Host: %s", host); DBG("Port: %d", port); DBG("Path: %s", path); - + if(dumpReqH)printf("\nHTTP Request: %s://%s:%d\n", scheme, host, port) ; //Connect DBG("Connecting socket to server"); @@ -329,6 +344,7 @@ const char* meth = (method==HTTP_GET)?"GET":(method==HTTP_POST)?"POST":(method==HTTP_PUT)?"PUT":(method==HTTP_DELETE)?"DELETE":""; snprintf(buf, sizeof(buf), "%s %s HTTP/1.1\r\nHost: %s\r\n", meth, path, host); //Write request + DUMP_REQ_HEADER(buf) ; ret = send(buf); if(ret) { m_sock.close(); @@ -348,9 +364,11 @@ if( pDataOut != NULL ) { if( pDataOut->getIsChunked() ) { ret = send("Transfer-Encoding: chunked\r\n"); + DUMP_REQ_HEADER("Transfer-Encoding: chunked\r\n") ; CHECK_CONN_ERR(ret); } else { snprintf(buf, sizeof(buf), "Content-Length: %d\r\n", pDataOut->getDataLen()); + DUMP_REQ_HEADER(buf) ; DBG("Content buf:%s", buf) ; ret = send(buf); CHECK_CONN_ERR(ret); @@ -358,6 +376,7 @@ char type[48]; if( pDataOut->getDataType(type, 48) == HTTP_OK ) { snprintf(buf, sizeof(buf), "Content-Type: %s\r\n", type); + DUMP_REQ_HEADER(buf) ; ret = send(buf); CHECK_CONN_ERR(ret); } @@ -366,6 +385,7 @@ //Add user headers if(header) { ret = send((char *)header); + DUMP_REQ_HEADER(header) ; CHECK_CONN_ERR(ret); } @@ -377,6 +397,7 @@ size_t trfLen; //Send data (if available) + DUMP_REQ_HEADER("\n") ; if( pDataOut != NULL ) { DBG("Sending data"); while(true) { @@ -397,6 +418,7 @@ DBG("trfLen 1=%d", trfLen) ; if( trfLen != 0 ) { DBG("Sending 1") ; + DUMP_REQ_HEADER(buf) ; ret = send(buf, trfLen); DBG("Sent 1") ; CHECK_CONN_ERR(ret); @@ -421,11 +443,12 @@ } } + DUMP_REQ_HEADER("\n") ; ret = flush() ; // flush the send buffer ; CHECK_CONN_ERR(ret); //Receive response - DBG("Receiving response"); + DBG("Receiving response:"); ret = recv(buf, CHUNK_SIZE - 1, CHUNK_SIZE - 1, &trfLen); //Read n bytes CHECK_CONN_ERR(ret); @@ -439,6 +462,8 @@ int crlfPos = crlfPtr - buf; buf[crlfPos] = '\0'; + DUMP_RES_HEADER("\nHTTP Response:") ; + DUMP_RES_HEADER(buf) ; //Parse HTTP response if( sscanf(buf, "HTTP/%*d.%*d %d %*[^\r\n]", &m_httpResponseCode) != 1 ) { @@ -503,7 +528,8 @@ } buf[crlfPos] = '\0'; - + DUMP_RES_HEADER(buf) ; + char key[32]; char value[32]; @@ -853,8 +879,10 @@ char base64buff[AUTHB_SIZE+3] ; ret = send("Authorization: Basic ") ; + DUMP_REQ_HEADER("Authorization: Basic ") ; CHECK_CONN_ERR(ret); sprintf(base64buff, "%s:%s", m_basicAuthUser, m_basicAuthPassword) ; + DUMP_REQ_HEADER(base64buff) ; DBG("bAuth: %s", base64buff) ; base64enc(b_auth, base64buff) ; b_auth[strlen(b_auth)+1] = '\0' ;