2017-04-07 98 views
-2

我想调用一个嵌套API来获取Arduino中使用C代码的室温。从Arduino调用嵌套API

当我打电话使用邮递员的API,我得到完美的回应:

enter image description here

然而,当我写的代码来获取温度数据,我得到如下回应:

请求发送 请求是HTTP/1.1 400错误请求。

这里是我的代码,任何人都可以帮我什么地方错了我的要求:

const char* ssid = "linksys"; 
const char* password = "XXXXX"; 

const char* host = "firebase-apiserver07-tah01-iad01.dapi.production.nest.com"; // "developer-api.nest.com"; // "api.github.com"; 
const int httpsPort = 9553; //443 9553; 
String url = ""; 


....... 
....... 
....... 

if (!client.connect(host, httpsPort)) { 
    Serial.println("connection failed"); 
    return; 
    } else { 
     client.print(String("GET ") + url + " HTTP/1.1\r\n" + 
       "Host: " + host + "\r\n" + 
       "Authorization: Bearer c.SbsgvTBcsJREMOVED_CODE_FOR_SECURITY_REASON\r\n" + 
       "Content-Type: application/json\r\n\r\n" 
       ); 

     Serial.println("request sent"); 
    } 

感谢,

沙巴

+1

1)请勿张贴文字的图像。 2)Arduino不是C,也不完全是C++。 – Olaf

+0

可能因为您需要安全连接。 –

回答

1

如果你得到一个400,你应该检查该URL实际上设置为/。您的代码没有显示url变量的值。

+0

感谢Femi对促销的回应,并对不起,我错过了那部分代码。 url被设置为空字符串,因为当我把“/”我没有得到任何回应。甚至没有不好的要求。 – shabk

+0

@ user1952378好吧,空字符串是非常错误的。它会导致你输出一些不是语法上有效的HTTP请求......这将解释“不好的请求”:) – hobbs

+0

@hobbs,我明白了,但为什么把'/'甚至没有得到任何回应? – shabk

0

我觉得在我的情况下,收到回复时出现延迟。我只需等待得到回应。而且可以肯定的URL必须是 “/”

字符串URL = “/”

感谢, 沙巴