mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	Fix #74
This commit is contained in:
		
							
								
								
									
										151
									
								
								examples/HttpClient/HttpClient.ino
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								examples/HttpClient/HttpClient.ino
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,151 @@ | |||||||
|  | /************************************************************** | ||||||
|  |  * | ||||||
|  |  * This sketch connects to a website and downloads a page. | ||||||
|  |  * It can be used to perform HTTP/RESTful API calls. | ||||||
|  |  * | ||||||
|  |  * For this example, you need to install ArduinoHttpClient library: | ||||||
|  |  *   https://github.com/arduino-libraries/ArduinoHttpClient | ||||||
|  |  *   or from http://librarymanager/all#ArduinoHttpClient | ||||||
|  |  * | ||||||
|  |  * TinyGSM Getting Started guide: | ||||||
|  |  *   http://tiny.cc/tiny-gsm-readme | ||||||
|  |  * | ||||||
|  |  **************************************************************/ | ||||||
|  |  | ||||||
|  | // Select your modem: | ||||||
|  | #define TINY_GSM_MODEM_SIM800 | ||||||
|  | // #define TINY_GSM_MODEM_SIM900 | ||||||
|  | // #define TINY_GSM_MODEM_A6 | ||||||
|  | // #define TINY_GSM_MODEM_A7 | ||||||
|  | // #define TINY_GSM_MODEM_M590 | ||||||
|  | // #define TINY_GSM_MODEM_ESP8266 | ||||||
|  |  | ||||||
|  | // Increase RX buffer | ||||||
|  | #define TINY_GSM_RX_BUFFER 512 | ||||||
|  |  | ||||||
|  | // Use Hardware Serial on Mega, Leonardo, Micro | ||||||
|  | #define SerialAT Serial1 | ||||||
|  |  | ||||||
|  | // or Software Serial on Uno, Nano | ||||||
|  | //#include <SoftwareSerial.h> | ||||||
|  | //SoftwareSerial SerialAT(2, 3); // RX, TX | ||||||
|  |  | ||||||
|  | //#define DUMP_AT_COMMANDS | ||||||
|  | //#define TINY_GSM_DEBUG Serial | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // Your GPRS credentials | ||||||
|  | // Leave empty, if missing user or pass | ||||||
|  | const char apn[]  = "YourAPN"; | ||||||
|  | const char user[] = ""; | ||||||
|  | const char pass[] = ""; | ||||||
|  |  | ||||||
|  | // Name of the server we want to connect to | ||||||
|  | const char server[] = "cdn.rawgit.com"; | ||||||
|  | const int  port = 80; | ||||||
|  | // Path to download (this is the bit after the hostname in the URL) | ||||||
|  | const char resource[] = "/vshymanskyy/tinygsm/master/extras/logo.txt"; | ||||||
|  |  | ||||||
|  | #include <TinyGsmClient.h> | ||||||
|  | #include <ArduinoHttpClient.h> | ||||||
|  |  | ||||||
|  | #ifdef DUMP_AT_COMMANDS | ||||||
|  |   #include <StreamDebugger.h> | ||||||
|  |   StreamDebugger debugger(SerialAT, Serial); | ||||||
|  |   TinyGsm modem(debugger); | ||||||
|  | #else | ||||||
|  |   TinyGsm modem(SerialAT); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | TinyGsmClient client(modem); | ||||||
|  | HttpClient http(client, server, port); | ||||||
|  |  | ||||||
|  | void setup() { | ||||||
|  |   // Set console baud rate | ||||||
|  |   Serial.begin(115200); | ||||||
|  |   delay(10); | ||||||
|  |  | ||||||
|  |   // Set GSM module baud rate | ||||||
|  |   SerialAT.begin(115200); | ||||||
|  |   delay(3000); | ||||||
|  |  | ||||||
|  |   // Restart takes quite some time | ||||||
|  |   // To skip it, call init() instead of restart() | ||||||
|  |   Serial.println("Initializing modem..."); | ||||||
|  |   modem.restart(); | ||||||
|  |  | ||||||
|  |   String modemInfo = modem.getModemInfo(); | ||||||
|  |   Serial.print("Modem: "); | ||||||
|  |   Serial.println(modemInfo); | ||||||
|  |  | ||||||
|  |   // Unlock your SIM card with a PIN | ||||||
|  |   //modem.simUnlock("1234"); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void loop() { | ||||||
|  |   Serial.print(F("Waiting for network...")); | ||||||
|  |   if (!modem.waitForNetwork()) { | ||||||
|  |     Serial.println(" fail"); | ||||||
|  |     delay(10000); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |   Serial.println(" OK"); | ||||||
|  |  | ||||||
|  |   Serial.print(F("Connecting to ")); | ||||||
|  |   Serial.print(apn); | ||||||
|  |   if (!modem.gprsConnect(apn, user, pass)) { | ||||||
|  |     Serial.println(" fail"); | ||||||
|  |     delay(10000); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |   Serial.println(" OK"); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   Serial.print(F("Performing HTTP GET request... ")); | ||||||
|  |   int err = http.get(resource); | ||||||
|  |   if (err != 0) { | ||||||
|  |     Serial.println("failed to connect"); | ||||||
|  |     delay(10000); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   int status = http.responseStatusCode(); | ||||||
|  |   Serial.println(status); | ||||||
|  |   if (!status) { | ||||||
|  |     delay(10000); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   while (http.headerAvailable()) { | ||||||
|  |     String headerName = http.readHeaderName(); | ||||||
|  |     String headerValue = http.readHeaderValue(); | ||||||
|  |     //Serial.println(headerName + " : " + headerValue); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   int length = http.contentLength(); | ||||||
|  |   if (length >= 0) { | ||||||
|  |     Serial.println(String("Content length is: ") + length); | ||||||
|  |   } | ||||||
|  |   if (http.isResponseChunked()) { | ||||||
|  |     Serial.println("This response is chunked"); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   String body = http.responseBody(); | ||||||
|  |   Serial.println("Response:"); | ||||||
|  |   Serial.println(body); | ||||||
|  |  | ||||||
|  |   Serial.println(String("Body length is: ") + body.length()); | ||||||
|  |  | ||||||
|  |   // Shutdown | ||||||
|  |  | ||||||
|  |   http.stop(); | ||||||
|  |  | ||||||
|  |   modem.gprsDisconnect(); | ||||||
|  |   Serial.println("GPRS disconnected"); | ||||||
|  |  | ||||||
|  |   // Do nothing forevermore | ||||||
|  |   while (true) { | ||||||
|  |     delay(1000); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user