2017-04-07 3 views
-2

Arduino에서 C 코드를 사용하여 실내 온도를 얻기 위해 nest API를 호출하려고합니다. 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"); 
    } 

감사 Shab

+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이어야 = "/"

감사합니다, Shab