2016-03-22 2 views
1

Ich arbeite an einem iOS-Projekt mit dem ESP8266 WLAN-Modul. Ich bin in der Lage gewesen, es erfolgreich mit dem Internet zu verbinden und eine GET-Anfrage an eine HTML-Seite zu machen, die dieses von adafruit bereitgestellte Tutorium verwendet. aber ich habe Probleme mit der Integration in die API-Endpunkte, die ich auf der Google Developer Console ausgeführt habe.Wie man einen POST-API-Anruf an Google-Endpunkte mit dem ardunio WiFiClient macht

Hier ist der Trank der Code, den ich

mit Problemen
const char* Host = "www.my_app_id.appspot.com"; 
String PostData = "clientId=&fanId=&kueliiKey="; 
String url = "/_ah/api/fan/v1/register?"; 
Serial.print("Requesting URL: "); 
Serial.println(url); 
//Connect to the client and make the api call 
if (client.connect(Host, httpPort)) { 
    client.println("POST " + url + " HTTP/1.1"); 
    client.println("Host: "+ (String)Host); 
    client.println("User-Agent: Arduino/1.0"); 
    client.println("Connection: close"); 
    client.print("Content-Length: "); 
    client.println(PostData.length()); 
    client.println(); 
    client.println(PostData); 
    delay(500); 
} 
//Read all the lines of the reply from server and print them to Serial   
while (client.available()) { 
    String line = client.readStringUntil('\r'); 
    Serial.print(line); 
} 

//Serial.println(); 
Serial.println("closing connection"); 

Ich bin in der Lage zu verbinden, aber ich halte auf

einen 404 Fehler bekommen
lloc\umm_malloc.c 
HTTP/1.1 404 Not Found 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Pragma: no-cache 
Expires: Fri, 01 Jan 1990 00:00:00 GMT 
Date: Tue, 22 Mar 2016 12:08:06 GMT 
Vary: X-Origin 
Content-Type: text/html; charset=UTF-8 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
Server: GSE 
Accept-Ranges: none 
Vary: Origin,Accept-Encoding 
Connection: close 

Not Found 
closing connection; 

Was ich habe, in

String url = "/_ah/api/fan/v1/register?"; 

könnte falsch sein, aber ich habe doppelt überprüft und mit und der API Anruf funktioniert ein d gibt zurück, was ich will image of successful request irgendein Einblick darauf würde sehr geschätzt werden.

Danke.

Antwort

1

Nach einer Tonne von Versuchen erkannte ich, was falsch war und hier ist, wie ich es behoben habe.

  1. änderte ich meine URL https scheinbar hoch-Endpunkte bevorzugen https jetzt

    www.my_app_id.appspot.com https://my_app_id.appspot.com wurde;

  2. Dann musste ich meinen Port zu 443 ändern und Postdaten an die Anrufe mit dem POST-Header-URL-Pfad anhängen.

    client.println ("POST" + URL + "HTTP/1.1") -> client.println ("POST" + URL + + Postdata + "HTTP/1.1");

  3. Endlich musste ich von WifiClient zu WiFiClientSecure wechseln.

hoffe, das hilft jemand :)

Verwandte Themen