@@ -52,6 +52,55 @@ const String HTTPClient::defaultUserAgent = defaultUserAgentPstr;
5252// return 0; // never reached, keep gcc quiet
5353// }
5454
55+ // Wrappers for ESP8266-specific Arduino API changes
56+ static size_t StreamSendSize (Stream *s, Print *c, int size) {
57+ int sent = 0 ;
58+ if (size < 0 ) {
59+ size = 999999 ; // Transfer until read fails
60+ }
61+ uint32_t start = millis ();
62+ while ((sent < size) && (millis () - start < 5000 )) {
63+ int x = s->read ();
64+ if (x < 0 ) {
65+ break ;
66+ } else if (c->write (x)) {
67+ sent++;
68+ } else {
69+ break ;
70+ }
71+ }
72+ return sent;
73+ }
74+
75+ class StreamConstPtr {
76+ public:
77+ StreamConstPtr (const uint8_t *payload, size_t size) {
78+ _payload = payload;
79+ _size = size;
80+ }
81+ StreamConstPtr (const String& string) {
82+ _payload = (const uint8_t *)string.c_str ();
83+ _size = string.length ();
84+ }
85+ size_t sendAll (Client *dst) {
86+ uint32_t start = millis ();
87+ size_t sent = 0 ;
88+ while ((sent < _size) && (millis () - start < 5000 )) {
89+ size_t towrite = std::min ((size_t )128 , _size - sent);
90+ auto wrote = dst->write (_payload, towrite);
91+ if (wrote <= 0 ) {
92+ break ;
93+ }
94+ sent += wrote;
95+ _payload += wrote;
96+ }
97+ return sent;
98+ }
99+ const uint8_t *_payload;
100+ size_t _size;
101+ };
102+
103+
55104void HTTPClient::clear () {
56105 _returnCode = 0 ;
57106 _size = -1 ;
@@ -513,34 +562,6 @@ int HTTPClient::sendRequest(const char * type, const String& payload) {
513562 return sendRequest (type, (const uint8_t *) payload.c_str (), payload.length ());
514563}
515564
516- class StreamConstPtr {
517- public:
518- StreamConstPtr (const uint8_t *payload, size_t size) {
519- _payload = payload;
520- _size = size;
521- }
522- StreamConstPtr (const String& string) {
523- _payload = (const uint8_t *)string.c_str ();
524- _size = string.length ();
525- }
526- size_t sendAll (Client *dst) {
527- uint32_t start = millis ();
528- size_t sent = 0 ;
529- while ((sent < _size) && (millis () - start < 5000 )) {
530- size_t towrite = std::min ((size_t )128 , _size - sent);
531- auto wrote = dst->write (_payload, towrite);
532- if (wrote <= 0 ) {
533- break ;
534- }
535- sent += wrote;
536- _payload += wrote;
537- }
538- return sent;
539- }
540- const uint8_t *_payload;
541- size_t _size;
542- };
543-
544565/* *
545566 sendRequest
546567 @param type const char * "GET", "POST", ....
@@ -648,24 +669,6 @@ int HTTPClient::sendRequest(const char * type, const uint8_t * payload, size_t s
648669 return returnError (code);
649670}
650671
651- size_t StreamSendSize (Stream *s, Print *c, int size) {
652- int sent = 0 ;
653- if (size < 0 ) {
654- size = 999999 ; // Transfer until read fails
655- }
656- uint32_t start = millis ();
657- while ((sent < size) && (millis () - start < 5000 )) {
658- int x = s->read ();
659- if (x < 0 ) {
660- break ;
661- } else if (c->write (x)) {
662- sent++;
663- } else {
664- break ;
665- }
666- }
667- return sent;
668- }
669672/* *
670673 sendRequest
671674 @param type const char * "GET", "POST", ....
0 commit comments