J'essaie de faire un appel POST sur un point de terminaison pour un projet de compagnie de mon application android.Android Volley POST ServerError
J'utilise la bibliothèque volley
et je frappais cette erreur: com.android.volley.ServerError
avec message
comme NULL
. (Je suis un moment difficile essayer de comprendre ce que je fais mal)
Je me suis assuré que j'ai donné l'option de connexion internet dans mon manifeste: <uses-permission android:name="android.permission.INTERNET" />
Aussi mon point final est accessible par boucle pour le test:
curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -H "Postman-Token: 122eedf5-8ca5-c1a6-06d9-5cc1986d2b23" -d '{
"departure_time" : "2016-07-21 07:00:00",
"arrival_time" : "2016-07-21 08:30:00",
"location_flow": ["Milpitas+ca", "SanCarlos+Ca"],
"buffer_time": [0, 30, 0],
"mode": "driving"
}' "https://sudtrafficalarm.herokuapp.com/v1/wakecheck"
sortie:
{
"estimated_arrival_time": "2016-07-21 08:05:01",
"journey_duration": 2101,
"wake_status": false
}
Ceci est mon activité principale:
package com.sudhishkr.sudtrafficalarmandroid;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
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.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RequestQueue queue = Volley.newRequestQueue(this);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Toast.makeText(MainActivity.this, SystemTime.date2String(SystemTime.getCurrentTime()), Toast.LENGTH_SHORT).show();
final String REGISTER_URL = "https://sudtrafficalarm.herokuapp.com/v1/wakecheck";
JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, REGISTER_URL, getJsonData(),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(MainActivity.this, response.toString(), Toast.LENGTH_SHORT).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_SHORT).show();
}
}
);
queue.add(jsonRequest);
}
});
}
public JSONObject getJsonData() {
JSONObject params = new JSONObject();
try {
params.put("departure_time", "2016-07-21 07:00:00");
params.put("arrival_time", "2016-07-21 08:30:00");
params.put("mode", "driving");
JSONArray address = new JSONArray();
address.put("Milpitas+ca");
address.put("SanCarlos+Ca");
params.put("location_flow", address);
} catch (JSONException e) {
e.printStackTrace();
}
return params;
}
}
Déboguer le code - prend moi ici. Et je n'ai aucun message ou information sur la raison pour laquelle cela se produit.
je pense que ce devrait être un problème de connexion s'il vous plaît vérifier votre URL fonctionne –
boucle est travaillant @JithinKuriakose, c'est pourquoi j'ai donné mon point final. – sudhishkr