开发者社区> 问答> 正文

android Volley Post登录时返回登录页面,不能登录进去

使用Volley框架 Post登录时能返回html页面,但现显示的是我尚未登录

代码如下,抓到的post包在下面

 public class MainActivity extends Activity {

    TextView show;
    private String myCookies;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        show = (TextView) findViewById(R.id.show);
        show.setMovementMethod(ScrollingMovementMethod.getInstance());

        RequestQueue myRequestQueue = Volley.newRequestQueue(this);
        StringRequest myStringRequest = new StringRequest(
                Request.Method.GET,
                "http://202.38.232.10/opac/servlet/opac.go",
                new Response.Listener<String>() {
                    public void onResponse(String response) {
                        show.setText(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {

                    }
                }

        ) {
            //设置请求头
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();
                headers.put("Host","202.38.232.10");
                headers.put("User-Agent","Mozilla/5.0 (Windows NT 6.2; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0");
                headers.put("Referer","http://202.38.232.10/opac/servlet/opac.go?cmdACT=mylibrary.index");
                return headers;
            }
            //设置登录参数
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<String, String>();
                params.put("cmdACT","mylibrary.login");
                params.put("libcode","");
                params.put("method","mylib");
                                //账号密码是对的
                params.put("userid","************");
                params.put("passwd","******");
                params.put("user_login","登录");
                return params;
            }
            //记录cookies
            protected Response<String> parseNetworkResponse(NetworkResponse response) {
                Map<String, String> responseHeaders = response.headers;
                myCookies = responseHeaders.get("Set-Cookie");
                return super.parseNetworkResponse(response);
            }
        };

        myRequestQueue.add(myStringRequest);
    }

post请求头

 Host: 202.38.232.10
 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
 Accept-Encoding: gzip, deflate
 Referer: http://202.38.232.10/opac/servlet/opac.go?cmdACT=mylibrary.index
 Connection: keep-alive

请求参数

 cmdACT:"mylibrary.login"
 libcode:""
 method:"mylib"
 userid:"************"
 passwd:"******"
 user_login:"登录"

展开
收起
爵霸 2016-05-30 10:04:07 3095 0
1 条回答
写回答
取消 提交回答
  • 有些版本的volley只支持StringRequest,然后参数以getParams形式传入,提交方式为GET,楼主试一下吧,应该可以
    

    “答案来源于网络,供您参考” 希望以上信息可以帮到您!

    2019-09-27 20:36:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载