2017-09-12 16 views
0

CでBodyをPOST(Arduino - > Energia)に送信する必要がありますが、リクエストは行われますが、ボディは送信されません。CのボディでHTTP POST要求を送信Arduino

POST /温度... HTTP/1.1

ホストサーバーにデータを送信

:192.168.0.102

のContent-Lengthここで

は、コンソールからのフィードバックであります: 13

{値:'30 '}

レスポンスコード:200 HTTP/1.1 200 OK

X-Poweredのバイ:エクスプレス

のContent-Type: アプリケーション/ JSON。文字セット= UTF-8

のContent-Length:28 のETag:W/"1C-hvJwdxMoDderI2R105RV5ae/KRI"

日:火、2017年9月12日11時04分22秒GMT

接続:キープ-alive

{ "情報":

END

を "温度が追加さ" とここにありますCのコード(アルドゥイーノ - >エネルギア):

if (client.connect(server, 3000)) { 

String request = String("POST ") + (String)END_POINT + " HTTP/1.1\r\n" + 
       "Host: " + server + "\r\n" + 
       "Content-Length: " + dataToSend.length() + "\n\n" + 
       dataToSend; 
client.print(request); 
Serial.println(request); 

String response = ""; 
while (client.connected()) {  
    response += client.readStringUntil('}'); 
} 
Serial.println(); 
Serial.print("Response code: "); 
Serial.println(response.substring(9, 12)); 
Serial.println(response); 
Serial.println("END"); 
} 

とJSONは次のようになりますので

{値 '30'}

{ 
_id: "59b7b5169f699306290cacd2", 
timestamp: "2017-09-12T10:21:10.538Z", 
__v: 0 
}, 

はありません。

+0

に次の行

"Content-Length: " + dataToSend.length() + "\n\n" + 

を変更する必要がありますか? – Billa

+0

'dataToSend'は文字列ですか?どのように初期化されますか? – Lundin

+1

[速い回答を得るために、どのような状況で私の質問に「緊急」や他の類似のフレーズを追加することができますか?](// meta.stackoverflow.com/q/326569) - 要約は、これはボランティアに対処する理想的な方法であり、おそらく回答を得ることは非生産的です。これをあなたの質問に追加しないでください。 – halfer

答えて

0

各ヘッダー行の後に、キャリッジリターンと改行文字が必要です。
そして、ヘッダーと本文の間に空白行が必要です。

あなたは身体で何を意味しない

"Content-Length: " + dataToSend.length() + "\r\n\r\n" + 
関連する問題