首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复http.GET()引起的"Guru冥想错误“;?

如何修复http.GET()引起的"Guru冥想错误“;?
EN

Stack Overflow用户
提问于 2019-06-07 14:55:32
回答 1查看 3.7K关注 0票数 1

我想从esp32在我的web服务器上发送数据。ESP32无法访问网站并重新启动。

我用了Arduino IDE的例子。我试图发布(htt.POST(“X”))一些东西,并得到了同样的错误。我标记了代码以找出引起问题的行。谷歌搜索过。

代码语言:javascript
复制
...
msg="192.168.4.22/parametr";
if(WiFi.status() == WL_CONNECTED){ 

   if(client.connect(host,httpPort)){
      http.begin(msg); 
      Serial.print("0");
      Serial.print("[HTTP] GET...\n");
      int httpCode = http.GET();
      Serial.print("1");    
...

我希望访问网站,但现在esp32在实现http.GET()时重新启动,并且从不打印"1“。错误信息:古鲁冥想错误:核心1恐慌‘’ed (LoadProhibited)。异常没有得到处理。

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 15:48:23

您要传递给http.begin()的URL是不正确的。您需要包含http://前缀(参见这里)。在语义上,将这个变量命名为url而不是msg更有意义。

还有..。检查http.begin()的返回值,以防它仍然失败。

代码语言:javascript
复制
    const char *url = "http://192.168.4.22/parametr";
    // Check Wi-Fi connected, etc.

    if (!http.begin(url)) {
        Serial.println("HTTP client failed to connect ...");
    }
    else {
        int httpCode = http.GET();
        // etc.
    }

LoadProhibited致命错误表示试图读取或写入无效内存位置。当库无法解析您提供的URL时,HTTPClient对象的某些成员可能未初始化。

测井输出

要帮助调试,请尝试将Arduino IDE中的“核心调试级别”设置为“debug”。

Arduino IDE -> Tools ->核心调试级别->调试

这将确保ESP日志消息(例如可能打印的如果HTTP客户端的初始化失败 )将在串口上打印。

例如,如果我未能在URL中包含http://协议说明符(在更改核心调试级别之后),我就会看到这个日志输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56496706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档