postman抓包_奇奇怪怪接口问题解决—Mac下Charles抓包

9ca2ccf4d384357082e70c25678fecac.png

【摘要】 最近因为接口数据,请求参数,请求头的配置的问题,服务器不稳定的问题排除,弄得我很头疼。后台兄弟非常忙,作为一个程序小白,我开始寻求前人的利器。

【作者】 清泓

首先说明,这个问题是一个很小的细节问题,这里主要讲述的一个充分利用工具来解决问题的思路,也充分体现了其实一个写程序的人,不仅仅需要能够有解决问题的技术,而且需要沟通能力,才能少走弯路,解决问题,一步到位,但是在这个能力提升的过程中,如何解决当下难题?

第一部分:问题还原

一个很简单的配置问题,请求接口,在接口前面添加一个请求头,来进行接口参数的请求。

64e67a7e97d1782d6729948e141d557e.png

在这里,我们利用的是iOS中的AFT来进行的网络请求,有一个特殊的接口,需要加几个请求头,来进行数据的请求,我依照后台请求的我添加了一个请求头,对后台的数据进行获取。

这个接口本来已经调通了,没啥问题了,但是后来,发生的情况令人咂舌,在请求数据的时候,始终是请求不到数据。而且,也不报错。确实没报错,返回的是空。没有报错信息。

我刚开始想都没想就一直觉得一定是后台的问题。

第二部分:前后端问题定位

但后来还是试了一下,由于涉及到请求头等的配置,我利用postman进行了模拟请求。

重点在此工具如何添加请求头。

第一步:先添加这个基本的请求参数,如下图所示(可以看到确实没有返回数据,也没有任任何状态返回):

0fe77913730c5370d78730b0944061e9.png
返回值为空,基本参数,未添加请求头

第二步:添加请求头,这个在postman的顶上栏配置tab标签的第三个:

c70f67602c3f92d8ba8768e08e5eeb7c.png

第三步:看结果吧:返回值没问题,前端出现问题了,后端数据没问题

71f6cf517c918cbe66d2e21d8987538f.png

第三部分:解决问题

开发人员工具箱:什么是Charles,我为什么要它?

https://www.youtube.com/watch?v=y8Okx-RWK3M(需要安全上网)

实现的功能是https和http抓包,来看看我到底传了什么东西到后台去了,没有弄到数据。

1d6fd1bba8ffeae23f2c256dbbeead04.png

第一步:我们需要下载它。

下载官网:https://www.charlesproxy.com

如果你下载不了,请私信我,乐意分享一切可用资源。

第二步:开始使用

在这里我发现了一个问题

44e5be1815f82318664e59b8d50ab320.png
我需要测试的是手机上的http请求

我需要测试手机上程序的网络请求,这里就不得不说明一下如何配置手机上的网络了。

首先得查看电脑的http地址:

db5dd6fa715e74e2225de76d8a87381a.png

然后在手机上,点击你手机上面连接的网络。

488aa5ba3a82b4096172ac258a87764f.png

找到你连接无线网的“配置代理”选项(必须跟你连接的电脑是同一个网段内)

733bdc71fe48c404d0c650d2c0aa221f.png

点击配置代理,改为手动模式,然后设置服务器名,服务器名就是我们在电脑上面获取到的IP地址,端口号设置成:8888即可。

731af62b561aa674877194a92c4c5e6e.png

设置完成之后,你会发现,你的手机离开电脑就上不了网了,这都是正常现象的,等你调试完成之后,直接关掉就OK,我们可以开始正式抓包了。

设置端口完成,电脑端会出现以下弹窗,我们点击同意,allow

0f74f403dac89a86dc362bb2d4f18808.png

抓包成功:

c968718cb961afc124a435cbafa0e29b.png

这里没有我想要的东西,我想看到网络请求头到底有没有添加:

e212325b59fd7b91a021d29849d13dbe.png

上图可以看出,我已经成功添加了请求头,而且数据都出来了,虽然这是我重现的,但确实可以理解为,服务器抽风了。

至此,问题就解决了,前前后后不到五分钟时间就解决了一个奇奇怪怪的问题。

拓展:

常见问题:

1.为什么我的手机抓不到包?

iOS10.3的真机抓包https, 在手机设置,关于本机,最下边有一个证书信任,必须打开charles的证书信任,才能抓包,而且,挂证书的api貌似抓不到包,只显示❌, 只有不挂证书的才能抓到。

2.ios13以上下载完证书以后,得去General -> Profile -> Charles Proxy CA里确认安装下,然后才会证书信用设置里出现相关信息。

可能存在的问题:

  1. 手机和电脑不处在同一网络环境下
  2. 手机上的代理ip不是电脑本机ip
  3. 证书没装成功
  4. 没勾选 Proxy -> macOS Proxy,勾选上 macOS Proxy
  5. 浏览器装的插件拦截了
  6. 不支持对应的协议,如 https http2 等需要另外配置

配置抓包HTTPS请求
主要步骤是电脑和手机上都安装好证书
电脑上的配置证书

如果您看了我的还觉得不能解决问题?讲的不够深入?没关系,可以继续往下看,如果以下没有您想要的,没关系,私信,留言联系我,我们一起学习,一起进步。

欢迎关注 技术团队的知乎账号 我们凭团队实例运作以下专栏, 必须干货!

互联网创业专栏 (我们小伙伴的创业历程)

与您一起聊技术 (APP、微信公众号、小程序、H5 技术总结)

互联网产品研发管理 (我们公司对产品结构的管理思路)

以下内容转载自:

使用Charles进行HTTPS抓包 - 掘金​juejin.im

安装SSL证书,手机端信任配置:

  1. 安装Charles HTTPS证书 路径:help–>SSLProxying–> Install Charles Root Ceriticate,如图所示:

432dcd1a54be9a95cd9d11b17c3769db.png
  1. 点击Install Charles Root Ceriticate后,会直接跳到钥匙串

03c57d9106707a845f4c80671194da38.png


如果你的证书已经信任,可直接进入下一步,反之,点击Charles Proxy CA,进入钥匙串访问,设置为始终信任

fa1f39bf5a251d968d0d953869e635e7.png
  1. 通过Proxy–>Proxy Settings->Proxies, 勾选Enable transparent HTTP proxying

4b9f35db94f73c60464e20318aac4d23.png
  1. 通过Proxy–>SSL Proxying Settings,勾选Enable SSL Proxying, 并添加host,端口是443 这里是把所有的host都设置进去

12a3352b01906814fbc83bbc75c63cb2.png


手机端下载证书

  1. 电脑上通过help–>SSLProxying–> Install Charles Root Ceriticate on a Mobile Device or Remote Browser,可以获得下载提示

e554aa753130f57b5161dc4b1599f623.png
  1. 手机上safari打开上述网址chls.pro/ssl(可能会有不同,请看上图提示),下载安装证书 注意要使用safari,其他浏览器下载证书并不会提示安装 20170606150148075.png

2f413a9fa15a2c76c4f6be03d4c205c4.png
  1. 信任刚刚安装的证书,手机上打开 设置->通用->关于本机-> 证书信任设置 -> 信任证书

27a5cb6bf5fa838fbfa67c5ef8c48485.png

参考:YouTube TeamLearnable Author:https://www.youtube.com/watch?v=y8Okx-RWK3M

参考:https://juejin.im/post/5e96df7e6fb9a03c4237a4b4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值