C#访问iPhone构建的网页

标签 c# iphone spoof

我正在尝试访问专为 iPhone 构建的 C# 网页。我发现您可以将用户代理欺骗为 "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3" 让网站认为您是 iPhone。

但是,对于某些网站,我只收到一个响应,告诉我先将网站添加到主屏幕。查看响应,他们似乎正在检查一些变量 "window.navigator.standalone" 以查看网页的访问方式。在谷歌搜索 ( see here ) 之后,这似乎是一种检测网页是否从主屏幕访问的常用方法。

因此,问题是,有没有人知道如何欺骗请求的其余部分,以便加载网页而不是不断要求将其添加到主屏幕?

最佳答案

window.navigator.standalone 是在客户端执行的脚本测试,用于检查站点的启动位置(主屏幕或 safari)。在请求中欺骗用户代理将使站点提供内容,但是当站点在询问 window.navigator.standalone 时,这显然是一个错误的返回。

您没有提到您是否正在执行脚本,或者您正在尝试实现什么,所以我只能推测您请求的站点旨在首先呈现 safari 启动版本,然后在测试变量时替代请求。

你能提供更多细节吗?也许是您请求的网站 URL?

更新:

好吧,那我是对的。如果该脚本没有运行,您将看不到正确的站点。我假设您正在处理自己的请求。您需要做的是将另一个请求作为 POST 发送到 Test.aspx,其中发布数据为 hidHomeScreen=true,从而模拟表单提交。

遗憾的是,这不是一个通用的解决方案,因为检测可能因站点实现而异。

关于C#访问iPhone构建的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053182/

相关文章:

c# - Winform C# Datagridview paint header

c# - MVC 路由在根目录中拾取区域 Controller

c# - 如何将服务器数据库复制到我的本地机器以生成脚本

iphone - xcode iphone模拟器 View 小于 Storyboard

javascript - 可以用 Chrome 欺骗用户代理和操作系统吗?

c# - 在 UWP 应用程序中模拟输入

iphone - 省略属性的 ivars 声明是否会导致麻烦或泄漏?

javascript - touch 相当于 focus() 方法?

linux - 为什么允许修改argv[0]?

linux - 如何强制所有请求都来 self 的网站以避免使用 Apache 进行欺骗