0

私が作業しているプラ​​ットフォームには、Web サービス要求を管理するためのライブラリがないため (私は Arduino ボードをプログラミングしています)、Google App Engine に格納されている Web サービスを要求するための SOAP 要求を作成する必要があります。保存されているSOAPサーバー

http://arduino-data-server.appspot.com/

リクエストを送信する前にサーバーに接続する必要があります。これは私のコードです:

char server[] = "www.arduino-data-server.appspot.com"; //server address
WiFiClient client;

if(client.connect(server, 80)) {
Serial.println("Connected to server, preparing request");
client.println("POST /dataserver HTTP/1.1");
client.println("Host: http://arduino-data-server.appspot.com");
client.println("Content-Type: text:xml; charset=utf-8");
client.println("SOAPAction: \"http://example.com/getData\"");
client.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
client.println("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
client.println("<soap:Body>");
client.println("<sendData xmlns=\"http://example.com/\"");
client.println("<temperatura> 22 </temperatura>");
client.println("<umidita> 55 </umidita>");
client.println("</sendData>");
client.println("</soap:Body>");
client.println("</soap:Envelope>");
client.println();
Serial.println("OK");
 }else {
Serial.println("KO");
  }
}

すべて問題ないようですが、私のサーバーでは着信接続が検出されません。どうしたの?

ここに wsdl ファイルがあります: arduino-data-server.appspot.com/FunctionsService.wsdl

4

1 に答える 1

0

問題ではないと思いますが、 > 記号がありません:

client.println("<sendData xmlns=\"http://example.com/\"");

次のようにする必要があります。

client.println("<sendData xmlns=\"http://example.com/\">");

アルゼンチンからよろしく

PD: 私は arduino であなたと同じことをしようとしています。

于 2013-12-28T19:43:23.233 に答える