Comment publier des données JSON ARRAY sur un serveur dans Android

Je souhaite envoyer ci-dessous les données JSON au serveur et lire la réponse dans Android. Voici les données de Json.

{ "class": "OrderItemListDto", "orderItemList": [ { "class": "OrderItemDto", "orderId": 24, "itemId": 1, "quantity": 2, "status": "NEW", "sRequest": "none" }, { "class": "OrderItemDto", "orderId": 24, "itemId": 2, "quantity": 2, "status": "NEW", "sRequest": "none" } ] } 

Il se peut que les données soient augmentées.

  • Différence entre les bases de données MySQL / SQLite / etc?
  • Android: comment: définir l'image de ImageSwitcher par un bitmap? SetImageBitmap n'existe pas?
  • Préférence AndroidPrix d'écran en deux lignes
  • Sortez un caractère par deux touches dans le clavier Android
  • Android met à jour la mise à jour d'apk et voir le résultat de l'installation
  • Appliquez un plugin: 'android' ou appliquez un plugin: 'com.android.application'
  • Comment supprimer AlertDialog dans Android
  • Comment charger des vidéos depuis le dossier des ressources? (Pour les lire avec VideoView)
  • Notification Multiple Android
  • Android - Activez le défilement de la barre d'application sur une base de recyclage par point de vue
  • Générer automatiquement Android Log TAG dans Android Studio / Intellij idée
  • ScrollView ne se déplace pas vers la fin de la marge inférieure de LinearLayout interne
  • 3 Solutions collect form web for “Comment publier des données JSON ARRAY sur un serveur dans Android”

    Vérifiez ce code

     JSONArray json = //your array; HttpClient httpClient = new DefaultHttpClient(); HttpContext httpContext = new BasicHttpContext(); HttpPost httpPost = new HttpPost("http://your_url"); try { StringEntity se = new StringEntity(json.toString()); httpPost.setEntity(se); httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("Content-type", "application/json"); HttpResponse response = httpClient.execute(httpPost, httpContext); //execute your request and parse response HttpEntity entity = response.getEntity(); String jsonString = EntityUtils.toString(entity); //if response in JSON format } catch (Exception e) { e.printStackTrace(); } 

    Android n'a pas de code spécial pour l'envoi et la réception de HTTP, vous pouvez utiliser le code Java standard. Je recommanderais l'utilisation du client HTTP Apache, qui vient avec Android. Voici un extrait de code que j'avais l'habitude d'envoyer un HTTP POST.

     try { int TIMEOUT_MILLISEC = 10000; // = 10 seconds HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC); HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC); HttpClient client =new DefaultHttpClient(httpParams); HttpPost request =new HttpPost(""); request.setEntity(new ByteArrayEntity(postMessage.toString().getBytes("UTF8"))); HttpResponse response = client.execute(request); }catch (Exception e) { } 

    Vous pouvez également envoyer Json sous forme de chaîne au serveur en utilisant la classe WebClient.

     WebClient webClient; //show progress dialog Uri uriImageUploadURL = new Uri ( "ServerStringUploadUri" ); webClient = webClient ?? new WebClient (); webClient.Headers.Add ( "Content-Type" , "text/json" ); webClient.UploadStringAsync ( uriImageUploadURL , "POST" , "JsonStringToUpload" ); webClient.UploadStringCompleted += StringUploadCompleted; 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.