Skip to content

Ошибка парсинга многосоставной HTML строки #18

Open

Description

@LittleBuster

Версия бота 1.0.8
ESP32S3 N16R8
Framework ver.: 2.0.17

Пример отправки сообщения

    fb::Message resp;
    fb::Menu    menu;

    resp.chatID = user->chatId;
    resp.mode = fb::Message::Mode::HTML;

    String name = "test";
    resp.text = "<b>" + name + "</b>";
   //resp.text = String("<b>") + String("test") + String("</b>");

    resp.setMenu(menu);
    bot.sendMessage(resp);

В core.h в функции _parseResponse функция res.parseJson(); возвращает false.
В result.h с ошибкой выходит на этой строке

if (!_parser[tg_apih::ok].toBool()) return 0;

Решается сложением строк обходным путем:

    resp.text.concat("<b>");
    resp.text.concat(name);
    resp.text.concat("</b>");

Activity

  1. GyverLibs commented on Oct 2, 2024

    @GyverLibs
    Owner

    видимо какие то проблемы в ардуино ядре, хорошо бы вывести полученную строку в порт почитать

    image

    image

  2. LittleBuster commented on Oct 2, 2024

    @LittleBuster
    ContributorAuthor

    Какая-то магия. В обоих случаях строки одинаковые.

        for (size_t i = 0; i <= resp.text.length(); i++) {
            Serial.printf("[%u] = %c = %u\n", i, resp.text.c_str()[i], resp.text.c_str()[i]);
        }
    
    [0] = < = 60
    [1] = b = 98
    [2] = > = 62
    [3] = t = 116
    [4] = e = 101
    [5] = s = 115
    [6] = t = 116
    [7] = < = 60
    [8] = / = 47
    [9] = b = 98
    [10] = > = 62
    [11] = ␀ = 0
    
    [0] = < = 60
    [1] = b = 98
    [2] = > = 62
    [3] = t = 116
    [4] = e = 101
    [5] = s = 115
    [6] = t = 116
    [7] = < = 60
    [8] = / = 47
    [9] = b = 98
    [10] = > = 62
    [11] = ␀ = 0
    
  3. GyverLibs commented on Oct 2, 2024

    @GyverLibs
    Owner

    Определенно магия

  4. LittleBuster commented on Oct 2, 2024

    @LittleBuster
    ContributorAuthor

    Возможно где-то что-то кораптится в памяти в проекте большем чем просто HelloWorld, со множеством библиотек и кода. Проверил на чистом проекте на примере minimal таких проблем нет.
    Делал FullClean в VScode - ничего не дает.

  5. GyverLibs commented on Oct 2, 2024

    @GyverLibs
    Owner

    Ох такое сложно поймать будет

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions