当前位置:   article > 正文

Arduino 的http.post发送数据给server,有api_key_arduino post请求

arduino post请求

背景:

  1. Arduino需要发送4个sensor数据给server。
  2. 使用的网络模块为Ethernet W5100网络扩展板开发板模块。
  3. 库文件为arduino 自带的Ethernet.h。
  4. server上是php写的表格数据。发送数据前需要加入一个api_key。
  1. #include <SPI.h>
  2. #include <Ethernet.h>
  3. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  4. EthernetClient client;
  5. int HTTP_PORT = 8080;
  6. String HTTP_METHOD = "POST";
  7. char HOST_NAME[] = "xx.xx.xx.xx";
  8. String PATH_NAME = "/ss/.php";
  9. String queryString = "?api_key=aaa&value1=26&value2=70&value3=30&sensor=Ardiono&location=aa";
  10. void setup()
  11. {
  12. Serial.begin(9600);
  13. if (Ethernet.begin(mac) == 0)
  14. {
  15. Serial.println("Failed to obtaining an IP address using DHCP");
  16. while(true);
  17. }
  18. if(client.connect(HOST_NAME,HTTP_PORT))
  19. {
  20. Serial.println("Connected to server");
  21. client.println(HTTP_METHOD + " " + PATH_NAME + " HTTP/1.1");//
  22. client.println("Host: " + String(HOST_NAME));
  23. client.println("Connection: close\r\nContent-Type: application/x-www-form-urlencoded");//;
  24. client.println("Content-Length: "); client.println(queryString.length());client.println();//
  25. client.println(queryString);
  26. while(client.connected())
  27. {
  28. if(client.available()){
  29. char c = client.read();
  30. Serial.print(c);
  31. }
  32. }
  33. // the server's disconnected, stop the client:
  34. client.stop();
  35. Serial.println();
  36. Serial.println("disconnected");
  37. }
  38. else
  39. {// if not connected:
  40. Serial.println("connection failed");
  41. }
  42. }
  43. void loop()
  44. {
  45. }

以上code这次测验好些回。

之前测试过好几次,发现连上的是bad request,如下图:

request 修正后,提示API key error,如下:

 真是一波三折,最终还是调好了,以前没有整过网络通讯,对client,server通讯不太了解。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/677966
推荐阅读
相关标签
  

闽ICP备14008679号