羔羊不羔 2022-10-26 17:36
浏览 4
已结题

esp8266在OTA的时候,连接http服务器如何打印返回的响应头

esp8266在HTTP——ota的时候,想要打印接收头,但是http_parser_execute()这个函数处理完了,不知道如何打印出响应头

用代码块功能插入代码,请勿粘贴截图

bool bParsed = false;
int parsed=0;

http_parser httpParser;
   http_parser_settings httpSettings;

   // 初使化解析器及回调函数
   http_parser_init(&httpParser, HTTP_REQUEST);
  http_parser_settings_init(&httpSettings);




if (client->state < HTTP_STATE_REQ_COMPLETE_HEADER) {
    return ESP_FAIL;
}

client->state = HTTP_STATE_REQ_COMPLETE_DATA;
esp_http_buffer_t *buffer = client->response->buffer;
client->response->status_code = -1;
//char *p;
//p=(char *)(&(client->response->headers));
//ESP_LOGI(TAG, "client_response_headers_sizeof = %d",sizeof(client->response->headers));
//for(int i=0;i<400;i++)
//{
//    ESP_LOGI("", "%02x",*p++);
    //putchar(*p++);
//}

while (client->state < HTTP_STATE_RES_COMPLETE_HEADER) {
    buffer->len = esp_transport_read(client->transport, buffer->data, client->buffer_size, client->timeout_ms);
    if (buffer->len < 0) {
        return ESP_FAIL;
    }
  parsed=  http_parser_execute(client->parser, client->parser_settings, buffer->data, buffer->len);
}
 printf("http_parser_execute => parsebytes:[%d] parseok:[%d] \n", parsed, bParsed);

// if(bParsed)
// {
// printf("url: [%s] \n", client.connection_info.url);
//printf("status: [%s] \n", client->);
// printf("heads: \n");
/* for (std::map<std::string, std::string>::iterator iter = mapHeadField.begin(); iter != mapHeadField.end(); ++iter)
{
printf("\t %s : %s \n", iter->first.c_str(), iter->second.c_str());
}
printf("body: [%s] \n", strBody.c_str());*/
// }
ESP_LOGD(TAG, "content_length = %d", client->response->content_length);
ESP_LOGI(TAG, "content_length = %d", client->response->content_length);
if (client->response->content_length <= 0) {
client->response->is_chunked = true;
return 0;
}
return client->response->content_length;

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月3日
    • 创建了问题 10月26日

    悬赏问题

    • ¥15 有人会SIRIUS 5.8.0这个软件吗
    • ¥30 comsol仿真等离激元
    • ¥15 静电纺丝煅烧后如何得到柔性纤维
    • ¥15 (标签-react native|关键词-镜像源)
    • ¥100 照片生成3D人脸视频
    • ¥15 伪装视频时长问题修改MP4的时长问题,
    • ¥15 JETSON NANO
    • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
    • ¥20 关于 openpyxl 处理excel文件地问题
    • ¥15 MS中不知道高分子的构型怎么构建模型