ESP32开发-HTTP POST请求发送图片
HTTP POST请求发送图片
ESP32中有HTTP相关的请求demo,但是demo中只是简单的HTTP header加上body。如果服务器对POST请求有要求,比如数据以key-value的形式传输,那么服务器会无法正常处理请求,从而返回错误码500。
发送POST请求
基于esp_http_client中的post请求demo进行修改,其中传输的图片通过cmake转化成二进制文件,具体可以参考esp-idf中的esp_http_client demo。
void http_send_img(){char *post = (char *)malloc(1024+(http_jpeg_end-http_jpeg_start-1));memset(post,0,1024+(http_jpeg_end-http_jpeg_start-1));esp_http_client_config_t config = {.url = "url",.event_handler = _http_event_handler, .method = HTTP_METHOD_POST,};esp_http_client_handle_t client = esp_http_client_init(&config);esp_http_client_set_header(client, "Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");memcpy(post,"------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"img.jpeg\"\r\nContent-Type: image/jpeg\r\n\r\n",135);memcpy(post+135,http_jpeg_start,(http_jpeg_end-http_jpeg_start-1));memcpy(post+135+(http_jpeg_end-http_jpeg_start-1),"\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\r\n",45);esp_http_client_set_post_field(client, post, 180+(http_jpeg_end-http_jpeg_start-1));esp_err_t err = esp_http_client_perform(client);if (err == ESP_OK) {ESP_LOGI(TAG, "HTTP POST Status = %d, content_length = %d",esp_http_client_get_status_code(client),esp_http_client_get_content_length(client));} else {ESP_LOGE(TAG, "HTTP POST request failed: %s", esp_err_to_name(err));}esp_http_client_cleanup(client);}
其中,name=“file”,file即为服务器需要post请求携带的key。
发送结果
用wireshark抓包可以看到,esp32发送的POST报文body中的数据格式跟用POSTMAN发送的报文一致,服务器也能正确处理并返回图片的链接。
学习笔记,有问题欢迎指出
ESP32开发-HTTP POST请求发送图片相关推荐
- java 图片请求_java中使用scoket模拟http post请求发送图片或文件
最近遇到个问题,两个系统共用用户的头像,用户的头像在一个系统中保存,这就涉及到将图片通过scoket发送给另一个系统存储的问题,最初的思路是将图片读成byte[]数组,然后发送,但又发现,发送图片的同 ...
- 用新浪微博接口发送图片微博失败的原因
昨天项目开发时遇到一个发送图片微博失败的奇怪问题,在本机发送图片微博是好的,但是放到测试机就是无法发送,代码如下 <?php include_once( 'app/config.php' ); ...
- html post 图片,如何发送图片作为多部分POST请求的一部分 - Java HtmlUnit
我正尝试使用Java将验证码提交给decaptcher.com. Decaptcher并没有很好的解释如何使用他们的API,所以我想弄清楚如何使用HTTP POST请求来提交验证码.下面是示例代码,我 ...
- 可以发送图片文件的php聊天室,基于 Swoole 开发实时在线聊天室(十四):发送图片消息...
基于 Swoole 开发实时在线聊天室(十四):发送图片消息 由 学院君 创建于1年前, 最后更新于 1年前 版本号 #1 2055 views 0 likes 0 collects 上篇教程我们演示 ...
- openfire android 发送图片,基于openfire+smack开发Android即时聊天应用[四]-单人聊天、群聊、发送接收文件等...
这篇文章主要介绍如何实现点对点单人聊天.多人的群聊.以及如何给对方发送文件,如何发送图片消息和语音消息等功能. 1.单人聊天 1.首先创建聊天对象 /** * 创建聊天窗口 * @param jid ...
- qq机器人开发第二课-发送图片
重要的知识点: 监听图片发送,要注意一点 图片除了可能在一般的消息中发送,还有可能是通过离线文件发送来的 qq机器人开发第二课-发送图片
- 网络请求以及网络请求下载图片的工具类 android开发java工具类
2019独角兽企业重金招聘Python工程师标准>>> package cc.jiusan.www.utils;import org.apache.http.HttpEntity; ...
- 微信公众号开发笔记(八)发送图片消息
发送图片消息 上一篇我们已经上传一个图片素材,并且微信服务器也返回给我们一个media_id,接下来我们使用media_id来构造图片消息 代码实现功能 在Message.Util工具类添加代码 1. ...
- ESP32开发环境的搭建和 ESP-IDF支持以下调试方法
ESP32开发环境的搭建 ESP-IDF 支持以下调试方法: 一. JTAG 二. GDB调试 三. 日志系统 四. Core Dump 五. esp32 heap 内存管理简析 ESP32开发环境的 ...
最新文章
- 网络编程学习笔记(udp_server函数)
- Oracle JDBC版本区别(转)
- 4.6 什么是神经风格迁移-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- 正则表达式的深入理解
- Some about me
- php数组foreach循环添加键值对_循环 - PHP二维数组根据键值对获取一组数组 (不使用foreach)...
- LInux下centos6.7 设置字符集,解决乱码问题
- 机器学习—LightGBM的原理、优化以及优缺点
- 鸿蒙的下一个时期叫什么,华为鸿蒙,一个本属于2025年的产品
- 智能中医诊疗系统php代码,中医HIS
- ffmpeg转mov为mp4
- 即时热榜——月薪3W+自媒体人的必备神器
- 雪花屏幕保护程序(VB.ENT)
- 对OMAP-L138的PSC模块的理解
- 文件23333333
- 转载:云计算必将极大影响未来--云泉
- 什么是ORM框架?常用的orm框架有哪些?能否不用ORM框架直接使用SQL语句创建WebAPI?
- js查找数组中符合条件的元素
- 《炬丰科技-半导体工艺》 使用超临界二氧化碳清洗去除晶片表面的Si3N4颗粒
- Linux基本bash命令(持续更新)