开发过程中快速抓包并解析
这几天小编在工作中遇到了一个灵异事件,客户端使用的是安卓原生系统,服务端使用的是java。需求就是客户端在照相的时候可以实时上传照片。后台接收并保存,并且可以在平台上显示。看似简单的功能,确有个很大的坑。有2个平台,192.168.31.87平台是测试环境,192.168.31.239是演示环境,测试环境,演示环境,还有安卓客户端代码都是一样的,连mq,redis,nginx,数据库都是一样的。但是安卓端上传测试环境一直报java.net.SocketException,在演示环境上是正常的。检查服务端代码。我首先用了postman进行测试.
由于已经上传过一张一样的照片,所以这里返回failed,但是请求是200.说明是调用正常。然后我在微服务上写了个测试类,用httpclient调用结果也是正常。
在安卓客户端上传的时候,正常和不正常的log分别是
正常:
response-->Response{protocol=http/1.1, code=200, message=OK, url=http://192.168.31.239:8081/api/collDataUpload?para={%22fileName%22:%2220180822_185110_523.jpg%22,%22pno%22:%2220180821%22,%22dkey%22:%2215948c07-c718-4f32-a0af-4b7841fa95a0%22,%22stime%22:%221534935070523%22,%22etime%22:%221534935071000%22}}
不正常:
response-->Response{protocol=http/1.1, code=400, message=, url=http://192.168.31.87:8081/api/collDataUpload?para={%22fileName%22:%2220180822_184559_902.jpg%22,%22pno%22:%228230%22,%22dkey%22:%22d351aa68-bace-438f-8d08-89ff598d4e04%22,%22stime%22:%221534934759902%22,%22etime%22:%221534934760000%22}}
安卓客户端部分代码
/*** 同步基于post的图片上传** @param url* @param file* @return*/public Response uploadPic(String url, File file, String fileName) throws IOException { MultipartBody.Builder builder = new MultipartBody.Builder(); builder.setType(MultipartBody.FORM); Log.i("huang", "files[0].getName()==" + files[0].getName()); //第一个参数要与Servlet中的一致 builder.addFormDataPart("file", fileName, RequestBody.create(MediaType.parse(guessMimeType(fileName)), file)); MultipartBody multipartBody = builder.build(); Request request = new Request.Builder().url(url).post(new ProgressRequestBody(multipartBody, listener)).build(); okHttpClient.newCall(request).enqueue(callback); }
服务端
然后客户端调用服务端连这个接口都没进来,首先我判断配置文件是否有对文件大小进行过滤,然后看了filter也没什么。百思不得奇解。于是做了很多操作。虽然最后问题还是没=解决,但是到get到了很多新技能。
非常重要的一个技能:抓包。
···
大致步骤为:
1.首先在linux服务器上执行指令
2.调用接口,然后执行指令把linux文件下载到本地
3.使用Wireshark查看日志
需要使用的linux命令
netstat -tupln | grep 5088
tcpdump -i any -p -s 0 -w /tmp/cap.pcap
sz /tmp/cap.pcap
···
然后到开始菜单换中打开
Wireshark这软件,小伙伴百度下载即可
地址栏中可以输入过滤条件:
ip.addr == 192.168.31.182 and http
选中其中你想看的包,右键追溯流--->TCP流或者http流
这里大致解释一下:
Content-Type:是上传文件格式multipart/form-data是指图片。
boundary=XXXX,这是前端传的时候使用的一种形式addBoundary
Content-Length是内容大小
Host:是服务器主机地址
Connection是链接状态
Accept-Encoding是接收的编码格式
User-Agent:是用户上传的形式,这里安卓使用的是okhttp/3.6.0
content-Desposition是上下文的描述
content-Type:内容类型
很开心,又get到了一个新技能,但是我的问题还是没有解决。目前的解决办法就是自己在写个安卓端,单独用做个按钮,然后用okhttp上传文件到平台。
另外在操作安卓的时候遇到了adb.exe已停止工作,然后开启不了虚拟机的问题。
出错画面:
一般出现这个错误的原因都是由于adb的默认端都5037,被其他程序占用了。撸主我就碰到过被酷我音乐,鲁大师和被360mobile的exe程式占用了,后来这些程式全部被我删了!
首先我们应该在电脑中查看5037的端口情况,输入 netstat -aon|findstr "5037":
我们可以看到PID为4476的程式使用了关端口,然我我们打开任务管理器。
我们可以看到进程为“360MobileLoader.exe *32”的进程占用了5037端口。理论上来说我们结束这个进程应该就行了。但是问题来了!
居然不让我删除!!!!!!!!PS:我自己的电脑,删不删除还需要你的同意?
选择打“”开文件位置“”,找到对应的exe程式,我这儿使用的是360强制删除,PS:普通删除的方同样不允许我删除。
我删除了之后,电脑重新注销了一下,adb.exe正常启动起来了。
Genymotion又开启了。小姐姐又回来了哈哈。
在附送一个知识:无界鼠标.就是一个鼠标键盘控制N台电脑(可以是不同操作系统)
附上链接
转载于:https://www.cnblogs.com/springboot/p/9527524.html
开发过程中快速抓包并解析相关推荐
- python抓包代码_Python抓包并解析json爬虫的完整实例代码
Python抓包并解析json爬虫FwA免费资源网 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫:FwA免费资源网 Fw ...
- python 抓包解析数据_Python抓包并解析json爬虫的完整实例代码
Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...
- Python抓包并解析json爬虫
Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...
- python 抓包 scapy udp,python+scapy 抓包與解析
最近一直在使用做流量分析,今天把 scapy 部分做一個總結. python 的 scapy 庫可以方便的抓包與解析包,無奈資料很少,官方例子有限,大神博客很少提及, 經過一番嘗試后,總結以下幾點用法 ...
- LiveGBS流媒体平台GB/T28181常见问题-播放花屏、没有通道、无法语音对讲等情况下Windows和Linux中如何抓包
LiveGBS播放花屏.没有通道.无法语音对讲等情况下Windows和Linux中如何抓包 1.第一步:抓包工具准备 1.1.Linux 1.2.windows 2.第二步:找到设备出口ip 3.第三 ...
- C++ winpcap网络抓包代码实现,以及抓包内容解析。
c++实现抓包代码 1.安装winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统.开发winpcap这个项目的目的在于为win32应用程序提 ...
- Python使用scapy和dpkt抓包并解析
scapy scapy是python中一个可用于网络嗅探的非常强大的第三方库,可以用它来做 packet 嗅探和伪造 packet. scapy已经在内部实现了大量的网络协议.如DNS.ARP.IP. ...
- Fiddler 抓包工具解析(保存)
阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...
- Wireshark抓包常见问题解析(转)
1. tcp out-of-order(tcp有问题) 解答: 1). 应该有很多原因.但是多半是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元 因为他们可能是通过不同的 ...
最新文章
- ibatis 批量插入
- [工具]-电脑磁盘爆满了,但又不知道哪些文件占用的空间,怎么办?
- 深数据 - Deep Data
- python编写格斗游戏_Python文字小游戏:搏击比赛
- html5 head 标签
- ActiveMQ的消息存储(八)
- TypeScript reflect-metadata 结合方法装饰器实现的一个自定义语法检查的例子
- 【渝粤教育】电大中专财务管理与分析 (2)作业 题库
- hdu 1176:免费馅饼
- 郁闷,两个伤脑筋的power script 问题
- php简写是哪个国家的货币,php是神马货币全称
- ps粘贴图片模糊怎么破
- could not extract ResultSet 错误
- 2020年(农历庚子鼠年)春联大全(收藏必备)
- CentOS 7 断电分区表丢失解决方法
- 电视hdr测试软件,短路三分钟 | 你家电视、显示器真的支持HDR么?
- r语言绘制精美pcoa图_[R语言 学习笔记]用R做主坐标分析(PCoA)
- 微信小程序开发—(八)canvas绘制图形
- 基于C语言设计的俄罗斯方块小游戏(VS2017运行)
- 关于XML解析的常用方式
热门文章
- Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常
- linux如何进入单用户模式
- Linux 基础命令
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)...
- Flink实例-Wordcount详细步骤
- java创建对象的5种方法
- windows 下使用composer
- Selenium Python 解决 UnexpectedAlertPresentException
- 总结概括对于大数据、高并发的网站如何进行优化的问题
- Java 根据comboBox选择结果显示JTable