Other Parts Discussed in Thread: CC3220SF
hello Sir/Madam,
I am working on my sample project which require to post some sensor data on my local webserver.
i have gone through the Http get example which is working very fine and i am getting response through http get method.
but i want to post some data same way on my local webserver but i am not able to post the data in json format.
i am able to successfully connect with my local webserver with cc3220 and getting status code 200 also but my server only getting empty flower brackets no data in that.
any help is appriciated, below is my code snippet.
void* httpTask(void* pvParameters) { bool moreDataFlag = false; char data[HTTP_MIN_RECV]; int16_t ret = 0; int16_t len = 0; /* Print Application name */ DisplayBanner(APPLICATION_NAME); sem_wait(&ipEventSyncObj); Display_printf(display, 0, 0, "Sending a HTTP GET request to '%s'\n", HOSTNAME); HTTPClient_Handle httpClientHandle; int16_t statusCode; //HTTP POST method const char header[] = "Basic dZdDpXGVz0N0"; httpClientHandle = HTTPClient_create(&statusCode, 0); if (statusCode < 0) { printError("httpTask: creation of http client handle failed", statusCode); } ret = HTTPClient_setHeader(httpClientHandle, HTTPClient_HFIELD_REQ_USER_AGENT, USER_AGENT, strlen(USER_AGENT), HTTPClient_HFIELD_PERSISTENT); ret |= HTTPClient_setHeader(httpClientHandle, HTTPClient_HFIELD_REQ_AUTHORIZATION, (const char *)header, strlen((const char *)header), HTTPClient_HFIELD_PERSISTENT); ret |= HTTPClient_setHeader(httpClientHandle, HTTPClient_HFIELD_REQ_CONTENT_TYPE, (const char *)"application/json", strlen((const char *)"application/json"), HTTPClient_HFIELD_PERSISTENT); if (ret < 0) { printError("httpTask: setting request header failed", ret); } ret = HTTPClient_connect(httpClientHandle, HOSTNAME1, 0, 0); if (ret < 0) { printError("httpTask: connect failed", ret); } ret = HTTPClient_sendRequest(httpClientHandle, HTTP_METHOD_POST, POST_REQUEST_URI, (const char *)"{\"Name\":\"Kaushik\"}", strlen((const char *)"{\"Name\":\"Kaushik\"}"), 0); if (ret < 0) { printError("httpTask: send failed", ret); } if (ret != HTTP_SC_OK) { printError("httpTask: cannot get status", ret); } Display_printf(display, 0, 0, "HTTP Response Status Code: %d\n", ret); len = 0; do { ret = HTTPClient_readResponseBody(httpClientHandle, data, sizeof(data), &moreDataFlag); if (ret < 0) { printError("httpTask: response body processing failed", ret); } Display_printf(display, 0, 0, "%.*s \r\n",ret ,data); len += ret; }while (moreDataFlag); Display_printf(display, 0, 0, "Received %d bytes of payload\n", len); ret = HTTPClient_disconnect(httpClientHandle); if (ret < 0) { printError("httpTask: disconnect failed", ret); } HTTPClient_destroy(httpClientHandle); return(0); }
Can any one please tell me where i am doing wrong?
Am i setting any wrong header fields or need to set any further header field....?
below is my macros
#define HOSTNAME1 "http://192.168.2.131:3010" #define POST_REQUEST_URI "/post_data" #define USER_AGENT "HTTPClient (ARM; TI-RTOS)"
please help me i am stuck here and not able to proceed further
Thanks.