Android-如何处理重定向的网络请求


Android - How to handle a web request which is redirected

我有一个API,可以处理get+post请求,但我收到了一个错误报告,即连接到公司网络后面的用户无法在我的应用程序中进行身份验证。

基本上,用户向api发送post-request(用户名+密码),api以json结果响应

然而,网络正在调整流量,使得初始请求通过网络服务器重定向,并用这样的html消息进行响应;

<HTML>
<HEAD>
<TITLE> Web Authentication Redirect</TITLE><META http-equiv="Cache-control" content="no-cache">
<META http-equiv="Pragma" content="no-cache"><META http-equiv="Expires" content="-1"><META http-equiv="refresh" content="1; URL=https://wirelessauth.login.html?redirect=bla.co.uk/android/api/auth">
</HEAD>
</HTML>

这通常会将浏览器重定向到正确的页面,但在我的android应用程序中,我不知道如何处理?

这可能像泥一样清澈,但感谢您的帮助:)

Andy

我认为最好的解决方案是与网络管理员协商重定向的异常,但这里有一些你可以尝试破解的方法:

  • 发布http,如果没有得到预期的错误或响应,请尝试在具有loadDataWithBaseUrl的WebView中加载响应(不要使用loadData,它已损坏!),然后让WebView处理重定向。Web视图不必是可见的,就可以为您完成工作。使用webview回调来拦截重定向后返回的任何响应或页面,并在webview之外适当地解析/处理它们

设备上的无线连接未通过身份验证,或者互联网服务提供商无法工作。请尝试浏览网页,然后重试。