使用Android Volley

时间:2017-10-21 00:19:11

标签: android ssl https android-volley

我正在尝试通过POST发送一个HTTPS请求但是它没有工作。该请求将我带到onErrorResponse,但没有显示错误是什么。我和Postman测试过,它工作正常。 我留下了部分代码。

    Map<String, String> params = new HashMap<String, String>();

    params.put(PARAM_HASH_TOKEN, HASH_TOKEN);
    params.put(PARAM_USUARIO, id);
    params.put(PARAM_PASSWORD, password);

    JSONObject jsonBody = new JSONObject(params);
    Log.e("POST",jsonBody.toString());

    JsonObjectRequest mJsonObjectRequest = new JsonObjectRequest(Request.Method.POST, URL_API, jsonBody, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            if (response != null) {
                F_PARSEAR_JSON_RESPUESTA(response);
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            String msg = (error.getMessage() == null) ? "Ha ocurrido un error, intentelo de nuevo." : error.getMessage();
            Log.e("ERROR",URL_API);
            Log.e("ERROR",msg);               
            _loginButton.setEnabled(true);
        }
    });
    ApplicationLoader.getInstance().addToRequestQueue(mJsonObjectRequest);

1 个答案:

答案 0 :(得分:0)

您可以检查客户端和服务器中的内容类型吗?它们具有相似的价值。

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

我希望它会对你有所帮助!