微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题

参考链接
https://blog.csdn.net/weixin_40188140/article/details/82851315
https://www.cnblogs.com/chenboyi081/p/4865447.html
https://blog.csdn.net/fmc088/article/details/80949626

手机用fiddler抓包

电脑最好是笔记本(我用的是台式电脑,分的局域网IP为192.168.1.130,手机连接的同一个网络下的WIFI),这样能和手机保持统一局域网内;其他不多说,直接说步骤了。

一.对PC(笔记本)参数进行配置

  1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的)

    打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,

    勾选CaptureHTTPS CONNECTs,点击Actions,

    勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行),见图:
    微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第1张图片
    我的没有勾选Ignore server cetificate errors,而是直接安装了证书名为:CertMaker for iOS and Android 的证书http://www.telerik.com/fiddler/add-ons。 不装证书的话,会一直提示“creation of the root certificate was not successful”。
    微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第2张图片
    2.配置fiddler允许远程连接
    上一步窗口中点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect,默认监听端口为8888(下图Fiddler listens on port就是端口号),若端口被占用可以设置成其他的,配置好后要重新启动fiddler,如下图:
    微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第3张图片
    点击完成之后,PC端配置完成,接下来开始配置手机端,以安卓为例,iOS方法同安卓;

二.对手机端进行参数配置
首先要保证手机和电脑都处于同一个网络;
然后要知道电脑的ip地址(当然这个电脑是安装fiddler的电脑),电脑ip地址可通过cmd,输入ipconfig查询,或网络共享中ipv4找到,我的是192.168.1.130,再者要知道fiddler的端口号,Tools->TelerikFiddler Options->Connections,port中值就是端口号,一般默认为8808;接下来开始操作手机;
1.第一步:更改手机无线网的代理(先设置代理)
手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可。
我用的华为mate10,进入代理设置界面为,设置->无线和网络->WLAN->长按已经连接的WIFI,会弹出窗口,点击窗口上的设置网络-进入设置网络界面后,将弹出的虚拟键盘取消,最下面会有一个“显示高级选项”的复选框,勾选后就可设置代理了。
微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第4张图片
下面就是下载和安装证书了
2,手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号(用的他人的图片,IP和端口号改为自己设置的代理服务器),点击前往;见下图:
微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第5张图片
3,前往之后会跳转到证书下载页,见下图:

     点击FiddlerRootcertificate下载证书;

微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第6张图片
这里可能会出现

"creation of the root certificate was not successful”的问题 (我也出现了这个问题,但是我没有按下面的去做,而是去安装了上面那个证书“CertMaker for iOS and Android”,重新刷新手机浏览器链接也能安装了。具体不知道有啥用。)

window端 cmd

cd “d:\Fiddler”
makecert.exe -r -ss my -n “CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com” -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012(日期要比当前日期大)

再安装证书,这样就ok。
4,点击下载之后,安装证书并起个名字,随便写就行,点击确定;
微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第7张图片
5,要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可;
微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第8张图片
6,操作手机,电脑fiddler中会显示一些http信息,成功;
7,我的方法操作后有时会跳出下图,我直接点击的Yes,然后Fiddle依然是可以用的,可以嗅探手机app或微信小程序的http请求。微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第9张图片

三.其他

1.停止电脑对手机的网络监控

     系统设置-wifi,找到代理,去掉即可;

2.删除手机中证书

     安卓系统设置—安全—收信任的凭证—用户,点击证书删除即可;

3.删除手机上密码

     手机系统—安全—密码,删除系统密码即可;

=======================================================================

wx.request请求webapi时web服务器端解析不到code问题

使用fiddler监控,微信小程序发往webapi的数据信息,可以看到数据中code确实是undefined。所以原因还是在微信小程序这边。
微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题_第10张图片
webapi那边的动作是将接收数据解析到code后直接返回,
微信小程序真机调试界面显示,data为null,所以表示未解析到code。
在这里插入图片描述
小程序中undefined说明变量未定义就使用了,所以向上查看发现code一直传递的是个临时变量,而非保存为页面data中的数据,所以将首次获取到的code保存到data,然后后面从data中取code传递就没有这个问题了。

你可能感兴趣的:(微信小程序)