首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >意外响应代码400?

意外响应代码400?
EN

Stack Overflow用户
提问于 2017-02-16 13:46:17
回答 1查看 4K关注 0票数 1

我正在使用Volley库,并有意外响应代码400的问题。我试图从用户名和密码登录,但面对com.android.volley.ServerError.How,这可以解决吗?

登录类

代码语言:javascript
复制
public class Login extends AppCompatActivity implements View.OnClickListener {

    EditText userName, Password;
    Button login;
    public static final String LOGIN_URL = "http://192.168.0.106:84/Token";
    public static final String KEY_USERNAME = "UserName";
    public static final String KEY_PASSWORD = "Password";
    String username, password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        userName = (EditText) findViewById(R.id.login_name);
        Password = (EditText) findViewById(R.id.login_password);
        userName.setHint(Html.fromHtml("<font color='#008b8b' style='italic'>Username</font>"));
        Password.setHint(Html.fromHtml("<font color='#008b8b'>Password</font>"));
        login = (Button) findViewById(R.id.login);
        login.setOnClickListener(this);
    }

    private void UserLogin() {

        username = userName.getText().toString().trim();
        password = Password.getText().toString().trim();
        StringRequest stringRequest = new StringRequest(com.android.volley.Request.Method.POST, LOGIN_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        if (response.trim().equals("success")) {
                            openProfile();

                        } else {
                            Toast.makeText(Login.this, response, Toast.LENGTH_LONG).show();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        Toast.makeText(Login.this, error.toString(), Toast.LENGTH_LONG).show();
                    }
                }) {


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> params = new HashMap<String, String>();
                params.put("Content-Type", "application/x-www-form-urlencoded");
                params.put("Charset", "UTF-8");
                return params;
            }


            @Override
            public Map<String, String> getParams() throws AuthFailureError {
                HashMap<String, String> map = new HashMap<String, String>();
                map.put(KEY_USERNAME, username);
                map.put(KEY_PASSWORD, password);
                return map;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }


    private void openProfile() {
        Intent intent = new Intent(this, Home.class);
        intent.putExtra(KEY_USERNAME, username);
        startActivity(intent);
    }

    @Override
    public void onClick(View v) {

        UserLogin();
    }


    public String getBodyContentType() {
        return "application/xml";
    }
}

如何解决这个问题?

删除标题后,我得到了这个。

EN

回答 1

Stack Overflow用户

发布于 2017-02-16 18:48:38

尝试使用POST方法编写此代码

代码语言:javascript
复制
final String URL = Vcruit.getInstance().GET_LOGIN;
    // Post params to be sent to the server
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("apikey", xxx.getInstance().API_KEY);
    params.put("userName", Username);
    params.put("password", Password);


        JsonObjectRequest req = new JsonObjectRequest(URL, new JSONObject(params),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        VolleyLog.v("Response:%n %s", response.toString(4));
                        JSONObject jObj = new JSONObject(response.toString());
                        JSONArray results = jObj.getJSONArray("data");
                        for (int i = 0; i < results.length(); i++) {
                            JSONObject cat = results.getJSONObject(i);
                            String status = cat.getString("status");
                            String errormsg = cat.getString("ErrorMsg");

                            if (status.equals("Success")) {
                                                                } else {


                            }
                            }

                    } catch (JSONException e) {

                        e.printStackTrace();
                    }
                    loader.setVisibility(View.GONE);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: ", error.getMessage());
        }
    });

    xxx.getInstance().addToRequestQueue(req);
}

https://www.simplifiedcoding.net/android-studio-volley-tutorial-to-create-a-login-application/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42265922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档