开发过程中快速抓包并解析

这几天小编在工作中遇到了一个灵异事件,客户端使用的是安卓原生系统,服务端使用的是java。需求就是客户端在照相的时候可以实时上传照片。后台接收并保存,并且可以在平台上显示。看似简单的功能,确有个很大的坑。有2个平台,192.168.31.87平台是测试环境,192.168.31.239是演示环境,测试环境,演示环境,还有安卓客户端代码都是一样的,连mq,redis,nginx,数据库都是一样的。但是安卓端上传测试环境一直报java.net.SocketException,在演示环境上是正常的。检查服务端代码。我首先用了postman进行测试.

image.png

由于已经上传过一张一样的照片,所以这里返回failed,但是请求是200.说明是调用正常。然后我在微服务上写了个测试类,用httpclient调用结果也是正常。

image.png

在安卓客户端上传的时候,正常和不正常的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); } 

服务端

image.png

然后客户端调用服务端连这个接口都没进来,首先我判断配置文件是否有对文件大小进行过滤,然后看了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
···

image.png

image.png

image.png

然后到开始菜单换中打开

image.png

Wireshark这软件,小伙伴百度下载即可
地址栏中可以输入过滤条件:
ip.addr == 192.168.31.182 and http

image.png

选中其中你想看的包,右键追溯流--->TCP流或者http流

image.png

这里大致解释一下:
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已停止工作,然后开启不了虚拟机的问题。

image.png

出错画面:

image.png

一般出现这个错误的原因都是由于adb的默认端都5037,被其他程序占用了。撸主我就碰到过被酷我音乐,鲁大师和被360mobile的exe程式占用了,后来这些程式全部被我删了!
  首先我们应该在电脑中查看5037的端口情况,输入 netstat -aon|findstr "5037":
  

image.png

我们可以看到PID为4476的程式使用了关端口,然我我们打开任务管理器。

image.png

我们可以看到进程为“360MobileLoader.exe *32”的进程占用了5037端口。理论上来说我们结束这个进程应该就行了。但是问题来了!

image.png

image.png

居然不让我删除!!!!!!!!PS:我自己的电脑,删不删除还需要你的同意?

image.png

选择打“”开文件位置“”,找到对应的exe程式,我这儿使用的是360强制删除,PS:普通删除的方同样不允许我删除。
  我删除了之后,电脑重新注销了一下,adb.exe正常启动起来了。

Genymotion又开启了。小姐姐又回来了哈哈。

image.png

在附送一个知识:无界鼠标.就是一个鼠标键盘控制N台电脑(可以是不同操作系统)
附上链接

image.png

posted on 2018-08-24 00:55 zhuyuansj 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/springboot/p/9527524.html

开发过程中快速抓包并解析相关推荐

  1. python抓包代码_Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫FwA免费资源网 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫:FwA免费资源网 Fw ...

  2. python 抓包解析数据_Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...

  3. Python抓包并解析json爬虫

    Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...

  4. python 抓包 scapy udp,python+scapy 抓包與解析

    最近一直在使用做流量分析,今天把 scapy 部分做一個總結. python 的 scapy 庫可以方便的抓包與解析包,無奈資料很少,官方例子有限,大神博客很少提及, 經過一番嘗試后,總結以下幾點用法 ...

  5. LiveGBS流媒体平台GB/T28181常见问题-播放花屏、没有通道、无法语音对讲等情况下Windows和Linux中如何抓包

    LiveGBS播放花屏.没有通道.无法语音对讲等情况下Windows和Linux中如何抓包 1.第一步:抓包工具准备 1.1.Linux 1.2.windows 2.第二步:找到设备出口ip 3.第三 ...

  6. C++ winpcap网络抓包代码实现,以及抓包内容解析。

    c++实现抓包代码 1.安装winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统.开发winpcap这个项目的目的在于为win32应用程序提 ...

  7. Python使用scapy和dpkt抓包并解析

    scapy scapy是python中一个可用于网络嗅探的非常强大的第三方库,可以用它来做 packet 嗅探和伪造 packet. scapy已经在内部实现了大量的网络协议.如DNS.ARP.IP. ...

  8. Fiddler 抓包工具解析(保存)

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...

  9. Wireshark抓包常见问题解析(转)

    1. tcp out-of-order(tcp有问题) 解答: 1). 应该有很多原因.但是多半是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元 因为他们可能是通过不同的 ...

最新文章

  1. ibatis 批量插入
  2. [工具]-电脑磁盘爆满了,但又不知道哪些文件占用的空间,怎么办?
  3. 深数据 - Deep Data
  4. python编写格斗游戏_Python文字小游戏:搏击比赛
  5. html5 head 标签
  6. ActiveMQ的消息存储(八)
  7. TypeScript reflect-metadata 结合方法装饰器实现的一个自定义语法检查的例子
  8. 【渝粤教育】电大中专财务管理与分析 (2)作业 题库
  9. hdu 1176:免费馅饼
  10. 郁闷,两个伤脑筋的power script 问题
  11. php简写是哪个国家的货币,php是神马货币全称
  12. ps粘贴图片模糊怎么破
  13. could not extract ResultSet 错误
  14. 2020年(农历庚子鼠年)春联大全(收藏必备)
  15. CentOS 7 断电分区表丢失解决方法
  16. 电视hdr测试软件,短路三分钟 | 你家电视、显示器真的支持HDR么?
  17. r语言绘制精美pcoa图_[R语言 学习笔记]用R做主坐标分析(PCoA)
  18. 微信小程序开发—(八)canvas绘制图形
  19. 基于C语言设计的俄罗斯方块小游戏(VS2017运行)
  20. 关于XML解析的常用方式

热门文章

  1. Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常
  2. linux如何进入单用户模式
  3. Linux 基础命令
  4. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)...
  5. Flink实例-Wordcount详细步骤
  6. java创建对象的5种方法
  7. windows 下使用composer
  8. Selenium Python 解决 UnexpectedAlertPresentException
  9. 总结概括对于大数据、高并发的网站如何进行优化的问题
  10. Java 根据comboBox选择结果显示JTable