Envoyer “METTRE” demande de Android à l'api rest
J'ai une application android que la consultation et l'insérer dans un service web rest-ful.
tout cela grâce à apache HTTPClient et JSON.
ainsi, par exemple, j'ai insérer un nouvel utilisateur dans la base de données.
HttpClient httpclient = new DefaultHttpClient();
//2. make POST request to the given URL
HttpPost httpPost = new HttpPost(url);
String json = "";
//3. build jsonObject
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", name);
jsonObject2.put("number", num);
//4. convert JSONObject to JSON to String
json = jsonObject.toString();
//5. set json to StringEntity
StringEntity se = new StringEntity(json);
//6. set httpPost Entity
httpPost.setEntity(se);
//7. Set some headers to inform server about the type of the content
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
//8. Execute POST request to the given URL
HttpResponse httpResponse = httpclient.execute(httpPost);
tous parfaitement créé, et bien maintenant je veux utiliser la méthode que j'ai créée dans le reste de l'api, méthode de METTRE à remplacer par exemple le nom de l'utilisateur avec l'ID 5 Si je veux faire un get entrez l'adresse de ma page + /ID et obtenir un utilisateur particulier. pour "METTRE" je le fais, mais ne fonctionne pas.
@Override
protected String doInBackground(String... params) {
InputStream inputStream = null;
String result = "";
try {
//1. create HttpClient
HttpClient httpclient = new DefaultHttpClient();
//2. make POST request to the given URL
HttpPut httpPut = new
HttpPut("http://000.000.0.000:0000/xxxxxx/webresources/net.xxxxx.users/5");
String json = "";
// //3. build jsonObject
// JSONObject jsonObject2 = new JSONObject();
// jsonObject2.put("idGuarderias", idG);
//3. build jsonObject
JSONObject jsonObject = new JSONObject();
jsonObject.put("name",newName);
// jsonObject.put("guarderiasIdGuarderias",jsonObject2);
json = jsonObject.toString();
StringEntity se = new StringEntity(json);
//6. set httpPost Entity
httpPut.setEntity(se);
//7. Set some headers to inform server about the type of the content
httpPut.addHeader("Accept", "application/json");
httpPut.addHeader("Content-type", "application/json");
//8. Execute POST request to the given URL
HttpResponse httpResponse = httpclient.execute(httpPut);
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
Quels changements dois-je faire?
- Est-il une erreur?
- Non, il suffit de ne pas entrer quelque chose dans la bd...
- Il n'y a pas d'exception trop? c'est étrange, c'est que l'URL est correcte?
- Vous avez un accès en RESTE journaux de service? Il y a deux options, l'une est que vous n'êtes pas d'envoyer les données de la deuxième, le service a un problème.
Vous devez vous connecter pour publier un commentaire.
Peut-être vous pouvez essayer ceci:
J'ai résolu mon problème avec le code suivant, merci pour la réponse.
Ils devraient mettre l'id dans l'url, et aussi de remplacer tous les paramètres, y compris l'id
Essayez ce code :
Vous pouvez ajouter votre paramètre dans le jsonObject objet
Espère que cela aide quelqu'un:
Notez ici
authToken
est facultatifVoici mon code.
ajouter de la dépendance dans gradle
compiler 'com.squareup.okhttp:okhttp:2.6.0'
HttpUtils.class
Registration.class
Espérons que cela vous aidera 🙂
ce lien sera également aider à résoudre le problème json l'analyse à partir de l'url