# iOS小技能:使用Safari调试手机WebView请求 & Mac 搭建本地 http 服务(支持自定义站点目录和端口)

415 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情

前言

WebView,包括UIWebView发起的请求以及WKWebView。但是如果是微信app的内置浏览器发起的请求无法监听(这个解决方案多种,比如使用Charles代理、逆向WeChat、安装手机侧的逆向工具等)。

截获分析网络数据包:blog.csdn.net/z929118967/…

I 使用Safari调试手机WebView

1.1 设置步骤

  • 手机设置 -> Safari 浏览器 -> 高级 -> Web检查器:

  • Mac上开启Safari的开发菜单

1.2 使用

  • 在Mac的Safari开发菜单选择对应设备,进行分析

II Mac 搭建本地 http 服务

开启mac自带 Apache WebServer

apachectl

Apache HTTP Server Control Interface

在这里插入图片描述

如果担心记不住命令名称,可以借助man command 或者借助补齐键 tab

2.1 使用默认的站点目录

# 开启 Apache

sudo apachectl start

➜   git:(master) ✗ apachectl status
Go to http://localhost:80/server-status in the web browser of your choice.
Note that mod_status must be enabled for this to work.

从状态描述可以看出默认端口是80

启动成功后,在浏览器器中输入 http://127.0.0.1/ ,即可访问到默认的⽹⻚

站点的目录是/Library/WebServer/Documents

➜  Documents cat index.html.en
<html><body><h1>It works!</h1></body></html>

把写好的⽹网⻚页放到这个⽬目录下,然后直接可以根据 URL 访问对应的⻚页⾯面

比如在浏览器中输入: http://ip/web/index.html http://192.168.1.103/csdn

使用ifconfig查看IP

2.1 自定义站点目录(使用python -m SimpleHTTPServer 搭建简单http服务)

开启Apache 服务之后,切换到指定目录,指定端口

python -m SimpleHTTPServer 8090

访问站点页面的URL:http://127.0.0.1:8090/csdn.html

➜  Documents lsof -i tcp:8090
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Python  1998  mac    3u  IPv4 0xxxxxx      0t0  TCP *:8090 (LISTEN)

III 预备知识

3.1 如何查看已用端口

左上角的苹果标->关于本机->点击系统报告->点击菜单栏上的窗口

输入本机IP地址127.0.0.1去扫描打开的端口

时间比较久

推荐使用lsof 命令

3.2 通过终端命令查看端口信息 lsof -i tcp:port

➜  ~ lsof -i tcp:80 
➜  ~ lsof -i tcp:443
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME


可用kill根据pid 进行关闭进程