Android: Volley HTTP Anforderung benutzerdefinierte Header

Ich bekomme die folgende Fehlermeldung, wenn ich die App ausführen: BasicNetwork.performRequest: Unerwarteter Antwortcode 401

Ich muss eine E-Mail, ein Passwort und ein Token übergeben, um auf die URL zuzugreifen, aber es funktioniert nicht

  • Android - MIME-Typ aus Datei ohne Erweiterung
  • Popup-Menü auf `ActionBar` anzeigen klicken
  • Erste Abschnitte, um mit SuperSLiM und RecyclerView zu arbeiten
  • Android .xml-Dateien: Warum arbeiten vordefinierte Farben nicht für mich?
  • Was ist die Bedeutung der neuen @SystemApi-Annotation, ein Unterschied von @hide?
  • Populäre Spinner mit Jahren dynamisch in Android?
  • Ich habe letzte Woche Androide gelernt, ich weiß nicht viel

    package quest.testvolley; import com.android.volley.AuthFailureError; import com.android.volley.VolleyLog; import com.kpbird.volleytest.R; import android.app.ProgressDialog; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONObject; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class MainActivity extends Activity { private String TAG = this.getClass().getSimpleName(); private ListView lstView; private RequestQueue mRequestQueue; private ArrayList<NewsModel> arrNews ; private LayoutInflater lf; private VolleyAdapter va; private ProgressDialog pd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lf = LayoutInflater.from(this); arrNews = new ArrayList<NewsModel>(); va = new VolleyAdapter(); lstView = (ListView) findViewById(R.id.listView); lstView.setAdapter(va); mRequestQueue = Volley.newRequestQueue(this); String url = "http://192.168.1.18/repr/api/clientes/Y2FtcG9zKGlkLG5vbWUsc3RhdHVzKTppnaW1pdCgxMCk6b2Zmc2V0KDApOm9yZGVtKG5vbWVbYXNjXSk="; pd = ProgressDialog.show(this,"Please Wait...","Please Wait..."); try{ Thread.sleep(2000); }catch(Exception e){} JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d(TAG, response.toString()); pd.hide(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " + error.getMessage()); pd.hide(); } }) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put("email", "rm@test.com.br"); params.put("senha", "test"); params.put("X-API-TOKEN", "99KI9Gj68CgCf70deM22Ka64chef2C40Gm2lFJ2J0G9JkD0afd19MfacGf3FFm8CM1hG0eDiIk8"); return params; } }; mRequestQueue.add(jsonObjReq); } 

  • Schaffung von AsyncTask zu viel Zeit Android
  • Wie kann man sicherstellen, dass sich das ausgewählte Bild nach dem Neustart von Android nicht ändert?
  • Webview in Scrollview
  • Mit JRuby können Sie Android Java-Methoden direkt anrufen
  • RequestWindowFeature (Window.FEATURE_NO_TITLE); Gibt die ausnahme
  • Wie finde ich alle unbenutzten Methoden meines Projektes in der Android Studio IDEA?
  • 3 Solutions collect form web for “Android: Volley HTTP Anforderung benutzerdefinierte Header”

    Die JsonObjectRequest ist JsonRequest erweitert, die die getBody() Methode direkt überschreibt, also dein getParam () würde niemals aufrufen, empfehle ich Ihnen, StringRequest anstelle von JsonObjectRequest zu erweitern.

    Sie können diese Antwort für weitere Details überprüfen.

    Übrigens haben Sie eine andere Wahl: Netroid , die Volley-basierte, bot mehr Features an.

    Wenn du deine Karte als Json-Objekt senden möchtest (du benutzt die Klasse JsonObjectRequest), solltest du es in den JsonobjectRequest-Konstruktor setzen:

     HashMap<String, String> params = new HashMap<String, String>(); params.put("email", "rm@test.com.br"); params.put("senha", "test"); params.put("X-API-TOKEN", "99KI9Gj68CgCf70deM22Ka64chef2C40Gm2lFJ2J0G9JkD0afd19MfacGf3FFm8CM1hG0eDiIk8"); JsonObjectRequest jsonObjReq = new JsonObjectRequest(url, new JSONObject(params), ..., ...); 

    Sehen Sie dieses Tuto

    Dieser arbeitete für mich (gesehen auf Volley JsonObjectRequest Post-Parameter nicht mehr arbeiten )

     String url = "https://www.youraddress.com/"; Map<String, String> params = new HashMap(); params.put("first_param", 1); params.put("second_param", 2); JSONObject parameters = new JSONObject(params); JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.GET, url, parameters, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { //TODO: handle success } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); //TODO: handle failure } }); Volley.newRequestQueue(this).add(jsonRequest); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.