0.需求说明
这个曲线救国仅仅实现可以满足我项目目前的功能:1.能够软件能够捕捉到localhost本地流量;2.解决地址映射(请求重定向),前端项目本地测试时不能跨域请求需要映射下线上服务地址完整调试;3.它的功能跟charles差不多,而且开源免费;4.完整实现上述两个目标并测试成功,详细的实现过程记录,方便初步使用。
1.前言
看到此篇博客的朋友,在网上可能看了很多博友写的Charles不能捕获localhost请求解决方法,里面提到最多的两点综合起来应该是以下两种:
第一种:Charles官方对不能捕获localhost本地流量的说明,以及解决方法。全文大致意思如下:
Localhost流量不会出现在Charles中
某些系统被硬编码为不使用代理进行本地主机流量,因此当您连接到http:// localhost /时,它不会显示在Charles中。
解决方法是连接到http://localhost.charlesproxy.com/。这指向IP地址127.0.0.1,因此它应该与localhost完全相同,但它的优势在于它将通过Charles。无论Charles是在跑还是你在使用Charles,这都会有效。如果您使用其他端口,例如8080,只需像往常一样添加它,例如localhost.charlesproxy.com:8080。
您还可以在该域前放置任何内容,例如myapp.localhost.charlesproxy.com,它也将始终解析为127.0.0.1。
或者,您可以尝试添加'。' 在localhost之后,或用本机名称替换localhost,或使用本地链接IP地址(例如192.168.1.2)。
如果Charles正在运行并且您使用Charles作为代理,那么您也可以使用local.charles作为localhost的替代方案。请注意,这仅在您使用Charles作为代理时才有效,因此上述方法是首选方法,除非您特别希望请求在不使用Charles时失败。
原文链接:https://www.charlesproxy.com/documentation/faqs/localhost-traffic-doesnt-appear-in-charles/
这个声明说明的缘由,charles是不再支持localhost流量的捕捉,并说了localhost.charlesproxy.com:8080可以代替localhost本地服务使用。
痛点:可惜的是,这个说的很清楚,可是小白对这些还不太熟,使用localhost.charlesproxy.com:8080切实可以打开一个本地服务(目测是charles软件提供的),但是我们项目的服务请求地址是localhost:8080呀使用他这个并不会转到我们想要的服务目录下---折腾了一会,放弃了(不知道会不是我没有改下服务启动的服务默认地址,比如localhost该成localhost.charlesproxy.com,没有尝试,总之放弃了)
第二种,是朋友提供的hosts对127.0.0.1 进行映射(以实测成功,可以参照:Charles不能捕获localhost请求解决方法-修改host方法)
host文件在C:\Windows\System32\drivers\etc
在这里面我新增了 127.0.0.1 映射成localhost.charlesproxy.com,保存重启电脑,启动服务,输入127.0.01 或localhost.charlesproxy.com 还是不管用啊(Tips:可能我太菜了,设置或理解映射有问题,知道的朋友欢迎告知一下呀,共享一下知识)
于似乎,上面两种方法,都不能解决我的charles捕捉localhost本地流量问题,更要命的是,博友们都是简洁的给了一点提示,但是又给具体的步骤,菜菜的自己无力回天实现不成功。
该方法已经设置成功,可以参考:Charles不能捕获localhost请求解决方法-修改host方法
3.曲线救国-使用Fiddler完成localhost抓取和对其重定向
Fiddler是跟Charles类似的软件,可以自动捕获localhost请求,最重要的开源免费,只是操作上有点不同,想要仔细了解它的特性,建议大家去看看文档,本文只会介绍简单的和完成localhost捕获或重定向请求步骤。
下载地址:https://www.telerik.com/download/fiddler
安装默认即可
使用Fidder,页面如下,可以看到本地流量localhost是自动被捕捉到的。后面就是介绍我怎么完成对本地请求的重定向配置。
3.1 重定向配置
和charles一样如果我们要对某个url进行重定向配置,第一步就是选中要配置的地址,Fidder也是一样,一localhost:8088为例。
1.选中要配置的url(这是前端本地开启的服务,请求接口在线上,所以报404-->任务就是将这个配成线上地址)
2.配置重定向url
选中url后,查看右边的配置栏选择AutoResponder,下面的三个规则全勾上
3.然后,新增规则Add Rule,在最下面的文本框右边下拉选择http://example.com,然后输入你要重定向去的url。
4.输入重定向url,save保存,然后测试看是否成功。
5.查看重定向url请求成功状态(我们可以看到状态码是200成功,并且它会致命请求结果类似是什么,比如这个就是json,然后右双击该url,右边也会显示详细的请求头和响应体)
3.2 总结
以上就是捕捉localhost采用Fidder曲线救国实现url重定向域名映射的方法,开头说的两种方法,我目前还没有试成功,有成功的朋友欢迎共享一下知识呀,我是差不多要拥抱Fidder这个软件了。