我正在用ArduinoIDE编程ESP32,并且HTTP GET出现问题。我在做什么:
这是我用于HTTP GET调用的代码:
static WiFiClient wifi;
HttpClient wlanHttp=HttpClient(wifi,"my.server.tld");
wlanHttp.get("/setpos.php?id=DEADBEEF"); // -> this fails with error code -1
wlanHttp.responseStatusCode(); // follow-up error -1
wlanHttp.stop();
你知道这里出了什么问题吗?
答案 0 :(得分:1)
这里令人困惑的部分是ESP32有一个内置的HTTP客户端HTTPClient。 Arduino的一个叫做HttpClient,我想找一个决定这个名字的人,看看他是否还好。 HTTPClient有一个名为getString()的例程,该例程是从json api调用中收集信息的一种好方法,但是HttpClient不会编译该例程,因为它不知道那是什么。
答案 1 :(得分:0)
在ESp32上(如果使用HTTPClient.h),代码应如下所示:
static WiFiClient wifi;
HttpClient wlanHttp;
wlanHttp.begin("http://my.server.tld/setpos.php?id=DEADBEEF"); //Specify the URL
int httpCode = wlanHttp.GET(); //Make the request
if (httpCode > 0) { //Check for the returning code
if (httpCode == HTTP_CODE_OK) {
// get payload with http.getString();
Serial.println(httpCode);
// Serial.println(payload);
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", wlanHttp.errorToString(httpCode).c_str());
}
} else {
Serial.println("Error on HTTP request");
}
wlanHttp.end(); //Free the resources