118 lines
3.0 KiB
C++
118 lines
3.0 KiB
C++
//====================================================================
|
|
// HTTP REQUESTS FROM WEB
|
|
//====================================================================
|
|
// HTTP Request To Send Data To Server Via WiFi
|
|
//--------------------------------------------------------------------
|
|
|
|
String prepare_HTTPData(String url, String data)
|
|
{
|
|
// Just For Display
|
|
Serial.println();
|
|
Serial.println("Sending To AWS Server ------------------------");
|
|
Serial.println();
|
|
|
|
// Card Code
|
|
String card = data;
|
|
|
|
// fOR TESTING PURPOSES
|
|
//url = "http://rfid.takeone.tech/index.php";
|
|
|
|
// PLANNER AWS LINK
|
|
//url += "?json=";
|
|
|
|
// COMBINNING INTO JSON DATA MESSAGE
|
|
data = post_json(data);
|
|
|
|
// Conversion Result
|
|
String ENCODED = base64(data);
|
|
|
|
// Serial Print Message
|
|
Serial.println(" -> CARD : " + card);
|
|
// Printing Data
|
|
Serial.println(" -> JSON DATA : " + data);
|
|
|
|
// New URL
|
|
url += ENCODED;
|
|
|
|
// Shows Us How It Would Look
|
|
Serial.println(" -> SERVER Request : " + url);
|
|
|
|
// Returnning The Value
|
|
return url;
|
|
}
|
|
|
|
//--------------------------------------------------------------------
|
|
// Send Http Request
|
|
//--------------------------------------------------------------------
|
|
|
|
String read_payload(String Request)
|
|
{
|
|
// HTTP Request
|
|
HTTPClient http;
|
|
|
|
// Empty PayLoad
|
|
String payload = "";
|
|
|
|
// HTTP Status Code
|
|
int httpCode = 0;
|
|
|
|
// Transmit Trials Count
|
|
int count = 0;
|
|
|
|
do {
|
|
// Counts
|
|
if(count < 3) {
|
|
count++;
|
|
Serial.println(" -> Trial #" + String(count));
|
|
//ESP.wdtFeed(); // Clearing Watch Dog Timer
|
|
} else {
|
|
break;
|
|
}
|
|
|
|
// configure traged server and url
|
|
http.begin(Request); //HTTP
|
|
Serial.print(" -> [HTTP] begin GET...\n");
|
|
|
|
// start connection and send HTTP header
|
|
httpCode = http.GET();
|
|
|
|
// httpCode will be negative on error
|
|
if(httpCode > 0) {
|
|
// HTTP header has been send and Server response header has been handled
|
|
Serial.printf(" -> [HTTP] GET... code: %d\n", httpCode);
|
|
// file found at server
|
|
if(httpCode == HTTP_CODE_OK) {
|
|
payload = http.getString();
|
|
Serial.println(" -> [HTTP] Response " + payload);
|
|
break;
|
|
}
|
|
} else {
|
|
Serial.printf(" -X [HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
|
|
payload = "";
|
|
}
|
|
} while(httpCode != HTTP_CODE_OK);
|
|
|
|
// Ending The Http Request
|
|
http.end();
|
|
|
|
// Returnning Payload
|
|
return payload;
|
|
}
|
|
|
|
//--------------------------------------------------------------------
|
|
// BASE64 Data Encoding
|
|
//--------------------------------------------------------------------
|
|
|
|
String base64(String data)
|
|
{
|
|
// Conversion Object
|
|
rBase64generic<4000> mybase64;
|
|
|
|
// Encoding The Data
|
|
if (mybase64.encode(data) == RBASE64_STATUS_OK) {
|
|
return mybase64.result();
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|