Commit 3fadb77395e7df8670a83d688f393a67ed81cf4a

Authored by Ferràn Quer i Guerrero
1 parent c851f008

--no commit message

Project/applications/smartcities/httpClient.c
@@ -18,6 +18,8 @@ int httpRequest(struct httpHeaders head, char* content, int content_size) @@ -18,6 +18,8 @@ int httpRequest(struct httpHeaders head, char* content, int content_size)
18 18
19 char* request; 19 char* request;
20 char* response; 20 char* response;
  21 +
  22 + err_t connection_ok = -1;
21 23
22 ip4_addr_set_u32(&remote_ip,ipaddr_addr(SERVER_IP)); 24 ip4_addr_set_u32(&remote_ip,ipaddr_addr(SERVER_IP));
23 25
@@ -87,20 +89,22 @@ int httpRequest(struct httpHeaders head, char* content, int content_size) @@ -87,20 +89,22 @@ int httpRequest(struct httpHeaders head, char* content, int content_size)
87 netconn_bind(neocon, IP_ADDR_ANY, LOCAL_PORT); //88 is provisional local port.*/ 89 netconn_bind(neocon, IP_ADDR_ANY, LOCAL_PORT); //88 is provisional local port.*/
88 netconn_connect(neocon, &remote_ip, DEFAULT_REMOTE_PORT); 90 netconn_connect(neocon, &remote_ip, DEFAULT_REMOTE_PORT);
89 91
90 - // Send Request  
91 - printf("httpRequest: Sending request\r\n");  
92 - netconn_write(neocon, request, request_size, NETCONN_NOCOPY);  
93 - chHeapFree(request);  
94 -  
95 - // Wait for Response  
96 - printf("httpRequest: Waiting for response\r\n");  
97 - //neocon->recv_timeout = 5000; // for 5s  
98 - err_t res=netconn_recv(neocon, &netBufs);  
99 - printf("res recv= %d\r\n",res); 92 + while(connection_ok !=0) // != ERR_OK
  93 + {
  94 + // Send Request
  95 + printf("httpRequest: Sending request\r\n");
  96 + netconn_write(neocon, request, request_size, NETCONN_NOCOPY);
  97 + chHeapFree(request);
  98 +
  99 + // Wait for Response
  100 + printf("httpRequest: Waiting for response\r\n");
  101 + //neocon->recv_timeout = 5000; // for 5s
  102 + connection_ok = netconn_recv(neocon, &netBufs);
  103 + printf("res recv= %d\r\n",connection_ok);
  104 + }
100 // Manage Response 105 // Manage Response
101 printf("httpRequest: Response received. Let's parse the information\r\n"); 106 printf("httpRequest: Response received. Let's parse the information\r\n");
102 response = (char*)chHeapAlloc(NULL,4*sizeof(char)); 107 response = (char*)chHeapAlloc(NULL,4*sizeof(char));
103 - printf("gggg\r\n");  
104 netbuf_copy_partial(netBufs,response,3,9); // read 3B starting from 9th -> read response code. "HTTP/1.1 301 Moved Permanently" 108 netbuf_copy_partial(netBufs,response,3,9); // read 3B starting from 9th -> read response code. "HTTP/1.1 301 Moved Permanently"
105 printf("httpRequest: Unbelievablelybilbiyblyib successful! :D\r\nResponse code: %s\r\n",response); 109 printf("httpRequest: Unbelievablelybilbiyblyib successful! :D\r\nResponse code: %s\r\n",response);
106 int http_response = response2int(response); 110 int http_response = response2int(response);