Post 使用android截取的Webview url控件

Post 使用android截取的Webview url控件,post,android-webview,android-volley,url-redirection,http-referer,Post,Android Webview,Android Volley,Url Redirection,Http Referer,我正在对一个url进行POST请求,其标题设置为referer url和令牌。当我尝试使用截击来完成我的文章时,有几个重定向(307),我在下面的代码中处理它们。重定向后返回200。此时,我想在webview中加载url。这个url要求用户输入信息,所以我希望用户输入信息,然后在登录时,我想检查何时到达referer url。在这种情况下,我如何检查referer url 这里的问题是我的初始url重定向并点击success 200到我在下面的webview中加载的正确登录页。但在那之后,我无法

我正在对一个url进行POST请求,其标题设置为referer url和令牌。当我尝试使用截击来完成我的文章时,有几个重定向(307),我在下面的代码中处理它们。重定向后返回200。此时,我想在webview中加载url。这个url要求用户输入信息,所以我希望用户输入信息,然后在登录时,我想检查何时到达referer url。在这种情况下,我如何检查referer url

这里的问题是我的初始url重定向并点击success 200到我在下面的webview中加载的正确登录页。但在那之后,我无法控制如何检查我是否打过推荐人

 public void authHttpPost(final Context context, final String id, final String url){

        RequestQueue queue = Volley.newRequestQueue(context);
        StringRequest sr = new StringRequest(Request.Method.POST, "http://www.abde.com", new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                if(url.equals("https://example.org")){
                  // referer hit
                }
                loadWebView(url);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // error
                NetworkResponse networkResponse = error.networkResponse;
                int statusCode = networkResponse.statusCode;

                if(statusCode == 307 || statusCode == 302 || statusCode == 303 || statusCode == 304) {
                    TreeMap<String, String> headers = (TreeMap<String, String>) networkResponse.headers;
                    String redirectUrl = headers.get("Location");
                    Log.i("Redirect Url", redirectUrl);
                    authHttpPost(context,id, redirectUrl);
                }
                Log.d("Error.Response", error.toString());
            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String,String> params = new HashMap<String, String>();
                params.put("Authorization", "Bearer "+mAccessToken);
                params.put("Referer", "https://example.org");
                return params;
            }
        };
        queue.add(sr);
    }


and my webview looks like below:

private WebViewClient webViewClient = new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
        @Override
        public void onPageFinished(WebView view, String url) {
        }
    };

    private void loadWebView(final String url) {

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                String postData = "token=" + Token;
                mWebView.setWebViewClient(webViewClient);
                mWebView.postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));
            }
        });
    }
public void authHttpPost(最终上下文、最终字符串id、最终字符串url){
RequestQueue=Volley.newRequestQueue(上下文);
StringRequest sr=新的StringRequest(Request.Method.POST)http://www.abde.com,新的响应。侦听器(){
@凌驾
公共void onResponse(字符串响应){
如果(url.equals)(“https://example.org")){
//参考打击
}
loadWebView(url);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//错误
NetworkResponse NetworkResponse=error.NetworkResponse;
int statusCode=networkResponse.statusCode;
如果(状态代码==307 | |状态代码==302 | |状态代码==303 | |状态代码==304){
TreeMap headers=(TreeMap)networkResponse.headers;
字符串重定向URL=headers.get(“位置”);
Log.i(“重定向Url”,重定向Url);
authHttpPost(上下文、id、重定向URL);
}
Log.d(“Error.Response”,Error.toString());
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map params=新的HashMap();
参数put(“授权”、“持有人”+mAccessToken);
参数put(“Referer”https://example.org");
返回参数;
}
};
添加(sr);
}
我的网络视图如下所示:
私有WebViewClient WebViewClient=新WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
返回false;
}
@凌驾
公共void onPageFinished(WebView视图,字符串url){
}
};
私有void loadWebView(最终字符串url){
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
字符串postData=“token=”+token;
setWebViewClient(webViewClient);
postrl(url,EncodingUtils.getBytes(postData,“BASE64”);
}
});
}