拦截来自visualstudioxamarin的mac/iOS模拟器的网络流量



我对Visual Studio或Xamarin几乎一无所知。我使用的是Visual Studio for Mac 8.9.10。这不是我的代码,我正在努力理解它。

这个应用程序对我的服务器(rails(执行REST请求,我正试图拦截它们。我已经设置了我的iOS模拟器,以便网络请求可以通过Proxyman。这适用于模拟器上的Mobile Safari,或者我自己用Xcode编写的应用程序。因此,我相信我能很好地处理Proxyman的使用和我试图拦截的流量。

然而,当我从Visual Studio Xamarin构建的应用程序在模拟器中进行联网时,Proxyman中什么都没有出现。起初我认为这可能是因为我使用本地主机服务器进行测试,但对于真正在互联网上发出的正常请求也是如此。Proxyman似乎根本看不到我的应用程序的流量。

这让我觉得VisualStudio/Xamarin本身配置iOS应用程序进行网络连接的方式有些奇怪。有吗?Mac用户如何在模拟器中拦截Xamarin Visual Studio构建的iOS应用程序的网络流量?

(还有一件事:如果我编写自己的iOS应用程序被Proxyman拦截,我必须启用NSArbitraryLoads才能通过http进行对话。但我的Visual Studio Xamarin应用程序在Info.plist中没有这个功能;但它可以通过http进行交谈。这怎么可能?似乎是相关的。(

(这可能是相关的:Xamarin http请求似乎真的以某种方式避开了代理?(?https://forums.xamarin.com/discussion/129748/how-do-i-make-http-requests-using-proxy-settings)

下层网络堆栈本身没有任何内容尊重系统代理设置;理想情况下,网络框架应该,但Xamarin的似乎没有。

localhost.proxyman.io是一个指向localhost的DNS条目,但它不会通过代理重定向流量。

你需要一个可以充当反向代理的东西-一个看起来像你的web服务一样面向客户端的服务,但它会将请求重定向到你的实际web服务。该功能在proxyman中尚不可用。

您可以使用Charles代理作为替代方案。