2017-10-27 17 views
0

私はArduinoからPHPを使用してGAEにリクエストを送信しようとしています。GoogleアプリケーションエンジンにGETリクエストを作成する

Arduinoのコード:GAEで

#define DST_IP "https://myservice-183310.appspot.com" // my gae address 

String cmd; 
Wifi.println("AT+CIPMUX=0"); 
cmd = "AT+CIPSTART=\"TCP\",\""; 
cmd += DST_IP; 
cmd += "\",80\r\n"; 
Wifi.println(cmd); 
if(Wifi.find("OK")){ 
    Serial.println("LINK SUCCESS"); 
} 
else{ 
    Serial.println("LINK ERROR"); 
} 

String user_info="GET /register.php?nfc_id="; 
user_info+=nfc_id; 
user_info+="\r\nHTTP/1.0 HOST: "; 
user_info+=DST_IP; 
user_info+="\r\n\r\n"; 

cmd="AT+CIPSEND="; 
cmd+=String(user_info.length()); 
Wifi.println(cmd); 
Wifi.print(user_info); 

app.yamlを:ブラウザで

runtime: php55 
api_version: 1 

handlers: 
- url: /register.php 
    script: register.php 

そして、私は404エラーメッセージが表示されますが、"https://myservice-183310.appspot.com/register.php?nfc_id=ooo"作品。

なぜこのエラーが発生し、どのように修正できますか?

+0

なぜなら、register.phpはファイルシステム内にあるとは思わないからです。 –

+0

register.phpはファイルシステムに存在します。ブラウザでurlを入力するとうまくいきますが、Arduinoでhttpリクエストを使ってエラーが発生します – Tooky

+0

これは有効なホストではありません。そして、 'HTTP/1.0HOST'は無効なヘッダです。 –

答えて

0

有効なHTTPリクエストは、次のようになります。

GET /request.php?nfc_id=MY_NFC_ID HTTP/1.0 
Host: myservice-183310.appspot.com 

私はコーダ何Arduinoのだありませんが、あなたが送信している要求があるように見えます:

を注意する

GET /register.php?nfc_id=MY_NFC_ID 
HTTP/1.0 HOST: https://myservice-183310.appspot.com 

物事

  • HTTP/1.0は、GETと同じ行にあり、それ自身の行ではありません。
  • Host: HTTPヘッダーには、プロトコルhttpsを使用しないでください。これらのヘッダーが読み取られる前に、SSLまたは非SSLがすでに処理されているため、不要になっているため、問題が発生する可能性があります。
0

私は問題が "HTTPS"プロトコルであると思いますが、 "HTTP"を試してみてください。

関連する問題