我必须在授予互联网访问权限之前完成浏览器表单时遇到wifi连接问题。用户(如果使用浏览器)被重定向到登录表单,要求他们登录或注册WiFi访问。 用户没有使用浏览器,但是从我的应用程序到服务器的请求被重定向到登录表单,使服务器无法访问。是否有一种优雅的方式来检测此行为,并至少警告用户该问题.. 在许多情况下,移动网络是可用的,只需要关闭wifi即可。
答案 0 :(得分:0)
HTTP重定向具有特定的响应代码(以及几个特定的响应代码,从300到307)。在假设您有连接并从那一点处理失败之前,您可以读取responseCode。
重定向也应该在响应标头中有一个Location值,因此您可以设想捕获该值并启动WebView,将Location作为URL传递,从而使用户可以访问登录表单。但是,这会变得有点复杂,具体取决于会话的验证方式 - 例如,如果有cookie,则必须从表单响应中提取它并将其存储为来自本机代码的未来请求。通常这些会话使用MAC地址,在这种情况下,您不必执行任何其他操作(除了处理成功登录并再次尝试您的请求)。
我希望这有用。