【问题标题】:How to add API KEY in HTTP Header for URL authentication token in android studio volley?如何在 android studio volley 中为 URL 身份验证令牌的 HTTP 标头添加 API KEY?
【发布时间】:2016-08-31 05:34:58
【问题描述】:

我已经查看了这么多示例和代码,但我仍然收到响应 Auth Failed in volley JsonArrayRequest。谁能告诉我在这里做错了什么。

下面是我的代码:

RequestQueue queue = Volley.newRequestQueue(act);
    if (isOnline()) {
        pDialog.show();
        JsonArrayRequest jsonObjReq = new JsonArrayRequest(Request.Method.POST,
                url, (String) null,
                new Response.Listener<JSONArray>() {

                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d("JSONArray Response", response.toString());

                        try {
                            listener.onResponse(response);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        pDialog.hide();
                    }
                }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d("JSONArray VolleyError", "Error: " + error.getMessage());
                pDialog.hide();

                if (error instanceof TimeoutError) {
                    listener.onError(timeout, timeoutTitle);
                Toast.makeText(act,
                        "Bad Network, Try again",
                        Toast.LENGTH_LONG).show();
                } else if (error instanceof NoConnectionError) {
                    listener.onError(poorNetwork, poorNetworkTitle);
                Toast.makeText(act,
                        "Bad Network, Try again",
                        Toast.LENGTH_LONG).show();
                } else if (error instanceof AuthFailureError) {
                    listener.onError(authorizationFailed, authorizationFailedTitle);
                Toast.makeText(act,
                        "Auth failed",
                        Toast.LENGTH_LONG).show();
                } else if (error instanceof ServerError) {
                    listener.onError(serverNotResponding, serverNotRespondingTitle);
               /* Toast.makeText(act,
                        "Server Not Responding",
                        Toast.LENGTH_LONG).show();*/
                } else if (error instanceof NetworkError) {
                    listener.onError(networkErrorMessage, networkErrorTitle);
                Toast.makeText(act,
                        "Network Error",
                        Toast.LENGTH_LONG).show();
                } else if (error instanceof ParseError) {
                    listener.onError(parseError, parseErrorTitle);
                Toast.makeText(act,
                        "try again"+error.getMessage(),
                        Toast.LENGTH_LONG).show();
                }


            }

        })
        {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<String, String>();
                //add params <key,value>
                params,put("api_key", "TOKEN");
                params.put("username", "vicky");
                params.put("password", "test123");
                return params;
            }

        }
                ;queue.add(jsonObjReq);

我被困了一天。

【问题讨论】:

  • 发布您的日志并检查您在标题中给出了正确的 api
  • BasicNetwork.performRequest:Url 的意外响应代码 403。 onErrorResponse: JSONArray VolleyError
  • 你可能会给出无效的 api_key 请检查它的 forbidden error 进一步谷歌它。使用 POSTMAN 验证 API 调用(即服务器请求和响应)。它在 Chrome 中的插件。干杯

标签: android android-studio http-headers android-volley


【解决方案1】:

由于要添加到Header,请使用getHeaders()而不是getParams()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-25
    • 2014-04-29
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多