2017-01-16 5 views
1

Kann mir bitte jemand, wie man den Header-Wert von der URL erhalten. Ich habe auf viele Tutorials verwiesen, aber ich konnte kein Tutorial finden, um den Header-Wert von Json zu erhalten. Jede Hilfe würde sehr geschätzt werden.Holen Sie sich den Header-Wert von der Android-Volley

Hier ist mein Code:

JsonArrayRequest obreq = new JsonArrayRequest(Request.Method.GET, JsonURL, 




       // The third parameter Listener overrides the method onResponse() and passes 
       //JSONObject as a parameter 
       new Response.Listener<JSONArray>() { 



        // Takes the response from the JSON request 
        @Override 
        public void onResponse(JSONArray response) { 



         pbHeaderProgress.setVisibility(View.GONE); 
         try { 

          // Retrieves the string labeled "colorName" and "description" from 
          //the response JSON Object 
          //and converts them into javascript objects 

          for (int i = 0; i < response.length(); i++) { 


           JSONObject jresponse = response.getJSONObject(i); 
           String id = jresponse.getString("id"); 
           Id.add(id); 

           String auth = jresponse.getString("DJ_author_name"); 
           Author.add(auth); 


           String date = jresponse.getString("date_gmt"); 

           SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
           java.util.Date date4 = null; 
           try { 
            date4 = form.parse(date); 
           } catch (ParseException e) { 
            e.printStackTrace(); 
           } 



           Date.add(newDateStr); 


           JSONObject title = jresponse.getJSONObject("title"); 
           String tit = title.getString("rendered"); 

           Title.add(tit); 


           JSONObject img = jresponse.getJSONObject("better_featured_image"); 
           String pic = img.getString("source_url"); 
           Image.add(pic); 

          } 


          // Adds strings from object to the "data" string 
          linear.setVisibility(RelativeLayout.VISIBLE); 
          // Adds the data string to the TextView "results" 
          adapter.notifyDataSetChanged(); 

         } 

         // Try and catch are included to handle any errors due to JSON 
         catch (JSONException e) { 
          // If an error occurs, this prints the error to the log 
          e.printStackTrace(); 
         } 
        } 
       }, 




       // The final parameter overrides the method onErrorResponse() and passes VolleyError 
       //as a parameter 
       new Response.ErrorListener() { 

        @Override 
        // Handles errors that occur due to Volley 
        public void onErrorResponse(VolleyError error) { 
         pbHeaderProgress.setVisibility(View.GONE); 
         Toast.makeText(Home.this, "error!!! =)", 
           Toast.LENGTH_SHORT).show(); 
         noi.setVisibility(RelativeLayout.VISIBLE); 
         Log.e("Volley", "Error"); 
        } 
       } 


     ); 



     obreq.setRetryPolicy(new DefaultRetryPolicy(
       30000, 
       DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
       DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     // Adds the JSON object request "obreq" to the request queue 
     requestQueue.add(obreq); 
+0

willst du Json in Android parsen? – W4R10CK

+0

Sie können Header-Wert nicht in Ihrer Antwort erhalten, also versuchen Sie nicht :) –

Antwort

0

überprüfen Sie bitte djodjos antworten here

, wenn Sie meinen Sie die Header-Werte der json erhalten möchten, der sich zurückgeführt wird, nicht die Header der Anforderung selbst Sie können Gson Bibliothek verwenden es ist schnell zuverlässig und sehr einfach

------- Ok dann als djodjos beantworten

zu verwenden

müssen Sie parseNetworkResponse außer Kraft zu setzen, wenn Sie die neue JsonArrayRequest (obreq) zum Beispiel erstellen

StringRequest request=new StringRequest(GET,"url",listener,errorListener){ 
     @Override 
     protected Response<String> parseNetworkResponse(NetworkResponse response) { 
      String totalPages=responseHeaders.get("X-WP-TotalPages"); 
      return super.parseNetworkResponse(response); 
     } 
    }; 
+0

wie Sie diesen Wert in den Hauptcode – Akash

+0

erhalten können Sie diesen Code mit meinem obigen Code – Akash

0

Sie können anfordern Unterklasse (oder eine ihrer Unterklassen) und die parseNetworkResponse Methode überschreiben:

@Override 
    protected Response<Bitmap> parseNetworkResponse(NetworkResponse response) 
{ 

    Map<String, String> responseHeaders = response.headers; 
} 

mit Bezug auf diese stackoverflow's link

+1

verbinden können Sie erklären, es fragt nach einer Erklärung zurück – Akash

Verwandte Themen