Android排球代码400 [英] Android Volley code 400

查看:118
本文介绍了Android排球代码400的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将数据发布到网站。这是登录操作。我检查表单数据隐藏标签等。在表单数据中有一个隐藏的输入_RequestVerificationToken。这就是为什么首先,我提出了请求来解析_RequestVerificationToken和头文件。

  StringRequest _StringRequest = new StringRequest(Request.Method.GET,url,$ b $ new Response.Listener< String>( ){
@Override
public void onResponse(String response){
//解析过程
}
},
Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
error.printStackTrace();
}
}

{
@Override
受保护的响应< String> parseNetworkResponse(NetworkResponse响应){

headers = response.headers;
返回super.parseNetworkResponse(response);
}
};

毕竟我使用参数和标题发布了请求:

  @Override 
public Map< String,String> getParams()
{
Map< String,String> params = new HashMap<>();
// POST参数:
params.put(Password,password);
params.put(RememberMe,false);
params.put(ReturnUrl,url_post);
params.put(UserName,username);
params.put(name,_RequestVerificationToken);
返回参数;
}
@Override
public Map< String,String> getHeaders()抛出AuthFailureError {
返回头文件;
}

我通过在chrome中使用fiddler扩展来检查表单数据。我检查参数一次又一次,但它返回代码400.你能告诉我什么是问题吗?

与这个课程,我补充说:

  CookieManager cookieManager =新的CookieManager(新的PersistentCookieStore(this),CookiePolicy.ACCEPT_ORIGINAL_SERVER); 
CookieHandler.setDefault(cookieManager);

在将请求添加到队列之前

I'm trying to post data to website. It is login operation. I check form data hidden tag etc. In form data there is a hidden input _RequestVerificationToken. That's why first, I made get request to parse _RequestVerificationToken and for headers.

StringRequest _StringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                       //Parsing Process
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        error.printStackTrace();
                    }
                }
           )
            {
            @Override
            protected Response<String> parseNetworkResponse(NetworkResponse response) {

                headers=response.headers;
                return super.parseNetworkResponse(response);
            }
        };

After all i made post request with parameters and headers:

@Override
            public Map<String, String> getParams()
            {
                Map<String, String>  params = new HashMap<>();
                // the POST parameters:
                params.put("Password", password);
                params.put("RememberMe", "false");
                params.put("ReturnUrl", url_post);
                params.put("UserName",username);
                params.put(name,_RequestVerificationToken);
                return params;
            }
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                              return headers;
            }

I check form data by using fiddler extension in chrome. I checked parameters again and again but it returned code 400. Can you show me what is the problem?

解决方案

I solve the problem with this class and I added this:

 CookieManager cookieManager = new CookieManager(new PersistentCookieStore(this), CookiePolicy.ACCEPT_ORIGINAL_SERVER);
            CookieHandler.setDefault(cookieManager);

before add request to queue

这篇关于Android排球代码400的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆