当前位置:  开发笔记 > 前端 > 正文

Android-Volley:为JsonArrayRequest设置HTTP标头

如何解决《Android-Volley:为JsonArrayRequest设置HTTP标头》经验,为你挑选了1个好方法。

所以我已经看到了几个JsonObjectRequests的例子,其中添加了这个代码

        @Override
        public String getBodyContentType() {
            return "application/json";
        }

有时候这个代码已被使用

        @Override
        public Map getHeaders() throws AuthFailureError {
            HashMap headers = new HashMap();
            headers.put("Content-Type", "application/json");
            return headers;
        }

无论哪种方式,它总是与JsonObjectRequest结合使用.我真的不知道在@OverrideJsonArrayRequest中添加方法的位置.这就是我的JsonArrayRequest的样子

JsonArrayRequest localJReq = new JsonArrayRequest(localURL,
      new Response.Listener() {
        @Override
        public void onResponse(JSONArray response){
            try{
                for (int i=0; i < response.length(); i++)
                {
                    JSONObject jsonObject = response.getJSONObject(i);
                    String title = jsonObject.getString("Title");
                    data += "Beschreibung: "+title+"\n\n\n";
                }
                output.setText(data);
            }catch (JSONException e){
                e.printStackTrace();
            }

        }
    },
            new Response.ErrorListener(){
                @Override
                public void onErrorResponse(VolleyError error){
                    error.printStackTrace();
                    Toast.makeText(MainActivity.this, "No more Items Available",
                          Toast.LENGTH_LONG).show();
                }
    });

我试图{}在最后一次收盘后添加它,)但这不起作用.我试过把它放在里面Response.Listener也没用.所以我有点困惑.

无论如何我认为我制作JsonArrayRequest真的很奇怪,但由于我的REST API接受HTML和JSON作为响应,因此Volley似乎得到了HTML响应而不是JSON.这让我在我的应用程序中没有任何项目.这不是那种奇怪吗?既然它是一个JsonRequest,那么请求不应该将内容类型设置为application/json吗?我希望通过将content-type设置为application/json,我将得到正确的响应类型.



1> Bharatesh..:

您可以在请求结束时调用这些方法;

    JsonArrayRequest localJReq = new JsonArrayRequest(localURL,
            new Response.Listener() {
                @Override
                public void onResponse(JSONArray response) {

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
           }) {//here before semicolon ; and use { }.
        @Override
        public Map getHeaders() throws AuthFailureError {
            return super.getHeaders();
        }

        @Override
        public String getBodyContentType() {
            return super.getBodyContentType();
        }
    };

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有