2016-09-30 12 views
-2

Ich übergebe einen Benutzernamen und ein Passwort an url mit basic64 auth-Methode. Die Antwort ist ein Token. Wie kann ich diesen Token mithilfe der Volley-Bibliothek erhalten?Wie erhalten Sie Antwortdaten Formular Volley Parsed HTTP-Header-Anfrage?

Vielen Dank im Voraus

+0

https://developer.android.com/training/volley/request.html#request-json – BNK

+0

Ich glaube, Sie Lösung finden Sie hier http://stackoverflow.com/questions/31230308/way-to -pass-long-parameter-in-url-request-using-volley Hoffe, das wird dir helfen – Vij

Antwort

0

können Sie die JsonRequest vorbei folgenden Code verwenden.

JsonObjectRequest req = new JsonObjectRequest(Url, new JSONObject(), 
       new com.android.volley.Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 
         try { 
          Log.v("Response:%n %s", response.toString(0)); 
          JSONObject jsonObject = new JSONObject(response.toString()); 
          String success = jsonObject.getString("success"); 

          // Get your Token Here. 

         } catch (JSONException e) { 
          e.printStackTrace(); 
          Toast.makeText(LoginActivity.this, "Server or Connection Error.", Toast.LENGTH_SHORT).show(); 
          builder.dismiss(); 
         } 
        } 
       }, new com.android.volley.Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.e("Error: ", error.getMessage()); 
      } 
     }); 

     AppController.getInstance().addToRequestQueue(req); 

Um die Anfrage in Volley passieren Sie AppController Klasse benötigen.

public class AppController extends Application { 

    public static final String TAG = AppController.class.getSimpleName(); 

    private RequestQueue mRequestQueue; 
    private static AppController mInstance; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mInstance = this; 
    } 

    public static synchronized AppController getInstance(){ 
     return mInstance; 
    } 

    public RequestQueue getRequestQueue(){ 
     if(mRequestQueue == null){ 
      mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 

     } 
     return mRequestQueue; 
    } 

    public <T> void addToRequestQueue(Request<T> req, String tag) { 
     // set the default tag if tag is empty 
     req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
     getRequestQueue().add(req); 
    } 

    public <T> void addToRequestQueue(Request<T> req) { 
     req.setTag(TAG); 
     getRequestQueue().add(req); 
    } 



    public void cancelPendingRequests(Object tag) { 
     if (mRequestQueue != null) { 
      mRequestQueue.cancelAll(tag); 
     } 
    } 

} 
+0

Im sorry..aber das hilft nicht .. im übergeben die Anfrage mit geparsten Netzwerkklasse @Override öffentliche Karte getHeaders() löst AuthFailureError aus { Zuordnung headers = new HashMap (); // Header hinzufügen Zeichenfolge Anmeldeinformationen = E-Mail + ":" + Passwort; Zeichenfolge auth = "Basic" + Base64.encodeToString (credentials.getBytes(), Base64.NO_WRAP); headers.put ("Autorisierung", auth); Rückkopplungsköpfe; } –

+0

die Antwort unter Verwendung der üblichen Verfahren unter Versuchte .. aber es gibt eine unbekannte Antwort .. Response: [B @ 41a24780 im den Statuscode richtig bekommen, während Response.StatusCode Aufruf .. aber beim Aufruf response.data , ich bekomme unbekannte Antwort (ResponseData: [B @ 41a24780) –

Verwandte Themen