嵌入式设备进行http socket开发流程

嵌入式设备进行http socket开发流程  

最近接触了一个http开发的项目,在这里记录一下主要流程。

    下位机:arm linux

    上位机:pc web服务器

    这里在与web服务器通信时,没有使用第三方开源库工具,而是直接使用socket通信模拟http协议通信,大致思路如下:

    1 、对域名解析,将www.xxxx.com之类的网址解析为ip地址,端口没有说明的话,默认80

    2、使用socket链接指定ip和端口

    3、模拟http协议格式发送数据,和接收数据处理

   

    这里最为繁琐的是第三步调试,http是一个纯文本协议,需要注意对空格、换行符等不可见字符特别注意。为了安全起见,这里推荐两个工具,用于调试http协议和分析http原始数据(wireshark抓包软件,和firefox浏览器的httprequest插件),这两个工具很实用。这里wireshark抓包软件,只要是接触网络的同事都知道,我就不说了,http request插件给大家一个切图:


http trap上传文件调试:

http trap 文件上传基本格式:

POST /upload_file/UploadFile HTTP/1.1

Accept: text/plain, */*

Accept-Language: zh-cn

Host: 192.168.29.65:80

Content-Type:multipart/form-data;boundary=---------------------------7d33a816d302b6

User-Agent: Mozilla/4.0 (compatible; OpenOffice.org)

Content-Length: 424

Connection: Keep-Alive

 

-----------------------------7d33a816d302b6

消息1

-----------------------------7d33a816d302b6

消息2

-----------------------------7d33a816d302b6

消息3

-----------------------------7d33a816d302b6--


同样先找合适的调试工具,这里以linux 端的curl指令,结合实际的项目为例:

# curl -F 'param={"category":18,"lng":"113.365336","lat":"23.105214","safecode":"A16F0D4D5FC085B4","sspusernum":"356869075000328","type":1,"data_type":1,"gather_time":"2017-05-02 15:44:38","clientid":"20170502154438","car_num":"鄂A5536","region_id":"430102"}' -F 'picture1=@/mnt/hgfs/share/cifs/1.jpg' -F 'video1=@/mnt/hgfs/share/cifs/1.mp4' http://mtest.yitopapp.com/ssposs-service/yitopssp/saveoffertwoother

同时使用wireshark 抓包获取数据包格式,然后按照该格式模仿数据发送。
在模仿数据格式时,我这里需要特别提醒一处,我就这这里被坑。

这里图片是post消息指令,和大家需要说明的boundary在这里是声明,假设boundary赋值为x

这里有两处boundary属于使用,前面boundary声明假设boundary赋值为x,使用时的表达式:--x,一定要记住使用时比声明多了两个--符号,我就是大意没有发现这个,调试了好久

这里有一个boundary,这里表示结束。前面boundary声明假设boundary赋值为x,结束时的表达式:--x--

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值