Comment afficher les paramètres de la demande lors de l'utilisation de JsonArrayRequest en Volley
Je suis novice en Json de l'analyse. Je suis en train de lire les données json à l'aide de JsonArrayRequest
mais je suis un peu confus dans les paramètres d'envoi et de l'utilisation de la méthode POST.En cas de JsonObjectRequest
je peux envoyer le type de méthode,url,params, mais Dans JsonArrayRequest
comment envoyer params comme nom d'utilisateur et le mot de passe et l'utilisation de la méthode POST.merci de m'aider.voici le code que j'ai écrit.
final JsonArrayRequest jsonObjReq = new JsonArrayRequest(MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(), new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
if(response==null) {
pDialog.hide();
}
for (int i = 0; i < response.length(); i++) {
jresponse = response.getJSONObject(i);
}
//String service_response = response.getString("SvcTypeDsc");
Toast.makeText(getActivity().getApplicationContext(), "services" + jresponse, Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
Log.d("soservices", "sos" + e.getMessage());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Login request", "Error: " + error.getMessage());
Log.d("Volley Error:", "Volley Error:" + error.getMessage());
Toast.makeText(getActivity(), "Unable to connect to server, try again later", Toast.LENGTH_LONG).show();
pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("uniquesessiontokenid","39676161-b890-4d10-8c96-7aa3d9724119");
params.put("loginname", userDet.getSAID());
params.put("password", "23295");
return super.getParams();
}
@Override
public int getMethod() {
try {
getParams();
} catch (AuthFailureError authFailureError) {
authFailureError.printStackTrace();
}
return super.getMethod();
}
};
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
mes données json est comme:
{
"username":"rushi",
"firstname": "abc",
},
{
"username": "xyz",
"firstname": "vxa",
},
Les paramètres ne sont pas envoyées. Merci de m'aider à résoudre cela.
Je vous remercie à l'avance.
Cette question est déjà répondu ici: stackoverflow.com/questions/18048806/...
Votre problème a été résolu ou pas?
oui ,j'ai résolu le problème en utilisant JSONRequest comme ci-dessous:
je suis incapable de poster ma réponse.
Le Volley.newRequestQueue(getActivity()).add(new JsonRequest<JSONArray>(Requête.La méthode.POST, MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(), jsonobj.toString(),la réponse.À l'écoute,errorlistener); Jsonobject.tostring est important
Votre problème a été résolu ou pas?
oui ,j'ai résolu le problème en utilisant JSONRequest comme ci-dessous:
je suis incapable de poster ma réponse.
Le Volley.newRequestQueue(getActivity()).add(new JsonRequest<JSONArray>(Requête.La méthode.POST, MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(), jsonobj.toString(),la réponse.À l'écoute,errorlistener); Jsonobject.tostring est important
OriginalL'auteur user1932583 | 2015-10-08
Vous devez vous connecter pour publier un commentaire.
Cela a résolu mon problème pour passer params quand JsonArrayRequest et la méthode POST est utilisée.
qu'est-ce que
jsonobj
?jsonobj est un jsonobject qui a demande params et converti à sstring format.
JsonObject jsonobj =new JsonObject();
j'ai suivi votre code, mais mon code est incapable d'envoyer la chaîne afin d'u peut m'aider comment puis-je corriger
OriginalL'auteur Rushi Ayyappa
De l'activité/fragment de n'utiliser ce
Répondre obtenir le formulaire ici.
https://stackoverflow.com/a/19945676/1641556
Référer à ces articles.
url ci-dessus n'est pas de me
Merci beaucoup, j'ai été en train de s'étendre JsonArrayRequest au lieu de Demander<JsonArray> (c'est bien ce que j'ai changé votre réponse à la cause j'ai besoin d'un tableau à la place). Une solution élégante!
OriginalL'auteur Elshan
Si vous utilisez
'com.android.volley:volley:1.0.0'
vous devez remplacergetParams()
méthode comme ceci:Si vous utilisez com.mcxiaoke.volley:bibliothèque:1.0.19' vous pouvez simplement mettre
JSONObject
:oui:
addJsonArrayRequest (Method.POST, URL, inputJSON, responseListener, errorListener);
OriginalL'auteur Volodymyr Kulyk
voici un exemple pour valider la demande au serveur à l'aide de volly
Vous pouvez ajouter des paramètres à une HashMap et de passer ensuite que dans la demande de la création;
ÉDITÉ:
vous pouvez modifier JsonObjectRequest à JSONArrayRequest..son jusqu'à vous...après l'obtention de la réponse, vous pouvez les convertir en string et de l'analyser comme un simple JSON dans la plaine du format de la chaîne de...la principale chose que vous demande, c'est comment vous pouvez envoyer des paramètres à votre requête post...et j'chose que j'ai expliqué que dans le code ci-dessus..
lorsque je change la JSONObjectRequest à JSONArrayRequest ,je ne suis pas en mesure de donner à la POSTE,Params .
Maintenant voir du film de réponses. Il fonctionne parfaitement maintenant, selon vos besoins 🙂
OriginalL'auteur pks
Ici vous allez..
Et sur PHP côté, vous pouvez obtenir ces paramètres comme ceci
Les modifications effectuées dans la réponse 🙂
Salut deepu,ici, si j'essaie d'écrire JsonarrayRequest avec la poste et jsonobject que les params de JsonArrayrequest ,il montre l'erreur, car il permet seulement d'url,la réponse de l'auditeur,de l'erreur à l'écoute.
Il y a beaucoup de constructeurs pour JsonArrayRequest l'un d'eux est ce que j'ai écrit ci-dessus et probablement ce dont vous avez besoin.
je n'ai pas trouver de nombreux constructeurs.
OriginalL'auteur rusted brain