Qu'est ce qui est stringentity dans Android et son utilisation?

Je suis nouveau sur Android, je suis en train de suivre ce didacticiel, j'ai trouvé le code ci-dessous, là il convertit json string en StringEntity. Corrigez-moi si je me trompe. StringEntity est utilisé pour transmettre les données, les en-têtes comme Accept, Content-type to Server.

// 1. create HttpClient HttpClient httpclient = new DefaultHttpClient(); // 2. make POST request to the given URL HttpPost httpPost = new HttpPost(url); String json = ""; // 3. build jsonObject JSONObject jsonObject = new JSONObject(); jsonObject.accumulate("name", person.getName()); jsonObject.accumulate("country", person.getCountry()); jsonObject.accumulate("twitter", person.getTwitter()); // 4. convert JSONObject to JSON to String json = jsonObject.toString(); // ** Alternative way to convert Person object to JSON string usin Jackson Lib // ObjectMapper mapper = new ObjectMapper(); // json = mapper.writeValueAsString(person); // 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); // 9. receive response as inputStream inputStream = httpResponse.getEntity().getContent(); . . . 

Et comment puis-je obtenir les données dans servlet / jsp? Dois-je utiliser getStream () ou request.getParameter ()

  • Fatal Spin-On-Suspend / Stuck on ThreadID
  • Package android.support.v4.util n'existe pas
  • Comment utiliser la caméra web dans l'émulateur Android pour capturer une image en direct?
  • Problème d'intégration Paypal dans le titane
  • Méthode getResourceId de TypedArray
  • Conversion de l'heure de l'heure sur la chaîne de dates
  • 3 Solutions collect form web for “Qu'est ce qui est stringentity dans Android et son utilisation?”

    Une entité dont le contenu est extrait d'une chaîne.

    StringEntity est la donnée brute que vous envoyez dans la requête.

    Le serveur communique à l'aide de JSON, la chaîne JSON peut être envoyée via StringEntity et le serveur peut l'obtenir dans le corps de la requête, l'analyser et générer une réponse appropriée.

    Nous définissons tout notre style unicode, le type de contenu dans ce seul

     StringEntity se = new StringEntity(str,"UTF-8"); se.setContentType("application/json"); httpPost.setEntity(se); 

    Pour plus d'aide, vous pouvez vous référer à ceci http://developer.android.com/reference/org/apache/http/entity/StringEntity.html

    Selon votre exigence, je l'édite pour la méthode post

     HttpPost httpPost = new HttpPost(url_src); HttpParams httpParameters = new BasicHttpParams(); httpclient.setParams(httpParameters); StringEntity se = new StringEntity(str,"UTF-8"); se.setContentType("application/json"); httpPost.setEntity(se); try { response = httpclient.execute(httpPost); StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if(statusCode==200) { entity = response.getEntity(); String responseText = EntityUtils.toString(entity); System.out.println("The response is" + responseText); } else { System.out.println("error");; } } catch(Exception e) { e.printStackTrace(); } 

    StringEntity est la donnée brute que vous envoyez dans la requête.

    La plupart du serveur communique à l'aide de JSON, la chaîne JSON peut être envoyée via StringEntity et le serveur peut l'obtenir dans le corps de la requête, l'analyser et générer une réponse appropriée.

    Accepte, le type de contenu, etc. sont envoyés comme l'en-tête de la requête, mais StringEntity est le contenu.

    L'en-tête n'est pas passé dans StringEntity .

    J'ai eu le même problème que j'ai résolu en 3 étapes avec Jackson dans Netbeans / Glashfish btw.

    1) Exigences:

    Quelques Jars que j'ai utilisé:

      commons-codec-1.10.jar commons-logging-1.2.jar log4j-1.2.17.jar httpcore-4.4.4.jar jackson-jaxrs-json-provider-2.6.4.jar avalon-logkit-2.2.1.jar javax.servlet-api-4.0.0-b01.jar httpclient-4.5.1.jar jackson-jaxrs-json-provider-2.6.4.jar jackson-databind-2.7.0-rc1.jar jackson-annotations-2.7.0-rc1.jar jackson-core-2.7.0-rc1.jar 

    Si j'ai manqué l'un des jar ci-dessus, vous pouvez télécharger à partir de Maven ici http://mvnrepository.com/artifact/com.fasterxml.jackson.core

    2) Exemple: classe Java où vous envoyez votre message. D'abord, convertissez avec Jackson l'utilisateur de l'entité à Json, puis envoyez-le à votre classe de repos.

     import com.fasterxml.jackson.databind.ObjectMapper; import ht.gouv.mtptc.siiv.model.seguridad.Usuario; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.json.simple.JSONObject; public class PostRest { public static void main(String args[]) throws UnsupportedEncodingException, IOException { // 1. create HttpClient DefaultHttpClient httpclient = new DefaultHttpClient(); // 2. make POST request to the given URL HttpPost httpPost = new HttpPost("http://localhost:8083/i360/rest/seguridad/obtenerEntidad"); String json = ""; Usuario u = new Usuario(); u.setId(99L); // 3. build jsonObject JSONObject jsonObject = new JSONObject(); jsonObject.put("id", u.getId()); // 4. convert JSONObject to JSON to String //json = jsonObject.toString(); // ** Alternative way to convert Person object to JSON string usin Jackson Lib //ObjectMapper mapper = new ObjectMapper(); //json = mapper.writeValueAsString(person); ObjectMapper mapper = new ObjectMapper(); json = mapper.writeValueAsString(u); // 5. set json to StringEntity StringEntity se = new StringEntity(json,"UTF-8"); // 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); // 9. receive response as inputStream //inputStream = httpResponse.getEntity().getContent(); } } 

    3) Exemple: Java Class Rest où vous souhaitez recevoir l'Entity JPA / Hibernate. Ici avec votre MediaType.APPLICATION_JSON), vous recevez l'Entité de cette manière:

    "Id": 99 , "usuarioPadre": null, "nickname": null, "clave": null, "nombre": null, "apellidos": null, "isLoginWeb": null, "isLoginMovil": null, " État ": null," correoElectronico ": null," imagePerfil ": null," perfil ": null," urlCambioClave ": null," telefono ": null," celular ": null," isFree ": null," proyectoUsuarioList " : Null, "cuentaActiva": null, "keyUser": null, "isCambiaPassword": null, "videoList": null, "idSocial": null, "tipoSocial": null, "idPlanActivo": null, "cantidadMbContratado": nul , "CantidadMbConsumido": null, "cuotaMb": null, "fechaInicio": null, "fechafin": null} "

      import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.apache.log4j.Logger; @Path("/seguridad") public class SeguridadRest implements Serializable { @POST @Path("obtenerEntidad") @Consumes(MediaType.APPLICATION_JSON) public JSONArray obtenerEntidad(Usuario u) { JSONArray array = new JSONArray(); LOG.fatal(">>>Finally this is my entity(JPA/Hibernate) which will print the ID 99 as showed above :" + u.toString()); return array;//this is empty } .. 

    Quelques conseils: si vous rencontrez un problème lors de l'exécution du Web après l'utilisation de ce code, cela peut être dû aux @Consumes in XML … vous devez le définir comme @Consumes(MediaType.APPLICATION_JSON)

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.