@@ -14,39 +14,43 @@ Esp8266HttpClient::Esp8266HttpClient() {
14
14
15
15
char * Esp8266HttpClient::send (const char * request, const char * serverUrl, int port) {
16
16
17
- // WiFiClientSecure client ;
17
+ WiFiClientSecure sclient ;
18
18
Serial.println (serverUrl);
19
19
Serial.println (port);
20
20
Serial.println (request);
21
21
Serial.println (" " );
22
22
Serial.println (" " );
23
23
24
- /* Arduino String to build the response with. */
25
- String responseBuilder = " Response: " ;
26
- if (client.connect (serverUrl, port)) {
27
- /* Send the requests */
28
- client.print (request);
29
- client.print (" \n " );
30
- /* Read the request into responseBuilder. */
31
- delay (delayTime);
32
- Serial.println (" <" );
33
- while (client.available ()) {
34
- char c = client.read ();
35
- responseBuilder.concat (c);
36
- Serial.print (" ." );
24
+ //
25
+ String response = " " ;
26
+ if (sclient.connect (serverUrl, port)) {
27
+
28
+ // Send the request
29
+ sclient.print (request);
30
+
31
+ // keep reading the response until it's finished
32
+ while (sclient.connected ()) {
33
+ while (sclient.available ()){
34
+ char c = sclient.read ();
35
+ response.concat (c);
36
+ Serial.print (' .' );
37
+ }
37
38
}
38
- Serial.println (" >" );
39
- client.stop ();
39
+
40
+ // disconnect any open connections
41
+ sclient.stop ();
42
+
40
43
} else {
41
- client. stop ();
42
- /* Error connecting. */
44
+ // connection was unsuccessful
45
+ sclient. stop ();
43
46
return " can't setup SSL connection" ;
44
47
}
45
- /* Copy responseBuilder into char* */
46
- int len = responseBuilder.length ();
47
- char * response = new char [len + 1 ]();
48
- responseBuilder.toCharArray (response, len + 1 );
49
- return response;
48
+
49
+ // convert the string into a char and return
50
+ int len = response.length ();
51
+ char * response_char = new char [len + 1 ]();
52
+ response.toCharArray (response_char, len + 1 );
53
+ return response_char;
50
54
}
51
55
52
56
bool Esp8266HttpClient::usesCurl () {
@@ -109,26 +113,26 @@ char* updateCurTime(void) {
109
113
char utctimeraw[80 ];
110
114
char * dpos;
111
115
112
- WiFiClient client2 ;
113
- if (client2 .connect (timeServer, 80 )) {
116
+ WiFiClient client ;
117
+ if (client .connect (timeServer, 80 )) {
114
118
// Send Request
115
- client2 .println (timeServerGet);
116
- client2 .println ();
117
- while ((!client2 .available ())&&(timeout_busy++<5000 )){
119
+ client .println (timeServerGet);
120
+ client .println ();
121
+ while ((!client .available ())&&(timeout_busy++<5000 )){
118
122
// Wait until the client sends some data
119
123
delay (1 );
120
124
}
121
125
122
126
// kill client if timeout
123
127
if (timeout_busy>=5000 ) {
124
- client2 .flush ();
125
- client2 .stop ();
128
+ client .flush ();
129
+ client .stop ();
126
130
Serial.println (" timeout receiving timeserver data\n " );
127
131
return dateStamp;
128
132
}
129
133
130
134
// read the http GET Response
131
- String req2 = client2 .readString ();
135
+ String req2 = client .readString ();
132
136
// Serial.println("");
133
137
// Serial.println("");
134
138
// Serial.print(req2);
@@ -137,8 +141,8 @@ char* updateCurTime(void) {
137
141
138
142
// close connection
139
143
delay (1 );
140
- client2 .flush ();
141
- client2 .stop ();
144
+ client .flush ();
145
+ client .stop ();
142
146
143
147
ipos = req2.indexOf (" Date:" );
144
148
if (ipos>0 ) {
0 commit comments