Cela fait maintenant deux semaines que j'essaie ça, et je suis vraiment coincé. Au départ, j'avais créé un simple programme client-serveur ObjectOutputStream - le client étant l'application Android, mais cela ne fonctionne pas (il lit la connexion mais pas l'objet). Maintenant, je suis confus quant aux autres approches que je pourrais être en mesure de prendre pour effectuer cette tâche simple? Quelqu'un peut-il aider?Quel est le meilleur moyen d'envoyer une paire de valeurs de nom à un serveur?
Répondre
avez-vous essayé URLConnection en utilisant la méthode post? :)
Ou procurez-vous comme méthode:
String yourURL = "www.yourwebserver.com?value1=one&value2=two";
URL url = new URL(yourURL);
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
response = in.readLine();
vous pouvez essayer JSON stirng pour envoyer des données. Nous avons beaucoup de choses sur la façon de travailler avec JSON et il y a aussi beaucoup d'API. JSONSimple est celui que je peux suggérer. C'est vraiment facile.
J'ai regardé JSON mais je n'ai pas réussi à trouver un tutoriel que je puisse comprendre, ils semblent tous vraiment compliqués. – BodhiByte
Si vous souhaitez sérialiser un objet java sur json. Je suggère Gson https://sites.google.com/site/gson/gson-user-guide. C'est vraiment bien, surtout quand on désérialise de JSON en objet Java. –
pourquoi ne pas essayer:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
aussi je recommande Json pour l'analyse des données –
Donc, je peux poster un objet (paires de valeurs de nom) à un serveur et le lire à partir d'un servlets? Est-ce que cela peut fonctionner avec une table de hachage? – BodhiByte
Si vos données d'objet ont juste quelques champs tels que ProductID, Price, alors, je pense que vous pouvez les envoyer comme paires de valeurs clés. Cependant, si vous avez beaucoup de champs, je crois que j'utilise json et que la bibliothèque prenne soin de reconstruire l'objet sur le serveur pour vous. :) –
Vous pouvez l'utiliser pour afficher une entité au serveur:
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(url);
postRequest.setEntity(entity);
try {
HttpResponse response = httpClient.execute(postRequest
);
String jsonString = EntityUtils.toString(response
.getEntity());
Log.v(ProgramConstants.TAG, "after uploading file "
+ jsonString);
return jsonString;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Une entité peut être paire de valeurs de nom:
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("key1", value1));
nvps.add(new BasicNameValuePair("key2", value2));
Entity entity=new UrlEncodedFormEntity(nvps, HTTP.UTF_8)
Ou vous pouvez envoyer une entité avec bytearray.
Bitmap bitmapOrg=getBitmapResource();
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao);
byte[] data = bao.toByteArray();
MultipartEntity entity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE)
entity.addPart("file", new ByteArrayBody(data, "image/jpeg",
"file"));
Si vous souhaitez poster JSON au serveur:
S'il vous plaît vérifier ce lien How do I send JSon as BODY In a POST request to server from an Android application?
Pour sérialisation et désérialisation objet java, je recommande https://sites.google.com/site/gson/gson-user-guide#TOC-Using-Gson espère vraiment pouvoir vous aider à voir un aperçu d'envoyer des données à serveur
merci je vais regarder dans les messages aux serveurs et tenter d'écrire une servlet. Une table de hachage peut-elle également être une entité? – BodhiByte
Oui, vous pouvez créer un objet NameValuePair à partir de votre hashtable. Puis construisez UrlEncodedFormEntity avec cet objet NameValuePair –
- 1. quel est le meilleur moyen de compresser une date?
- 2. Quel est le meilleur moyen d'envoyer des données au serveur?
- 3. Quel est le meilleur moyen de sécuriser un webservice?
- 4. Quel est le meilleur moyen de valider une liste de valeurs?
- 5. Quel est le meilleur moyen de sauvegarder une sélection d'utilisateurs
- 6. Quel est le meilleur moyen de fermer un thread WCF?
- 7. Quel est le meilleur moyen de surcharger un attribut Moose?
- 8. Quel est le meilleur moyen de transmettre une chaîne contenant un nom pdf en Objective-C?
- 9. Quel est le meilleur moyen de conserver un choix d'utilisateur?
- 10. Quel est le meilleur moyen de restaurer une transaction .net?
- 11. Quel est le meilleur moyen de sécuriser une API REST?
- 12. Quel est le meilleur moyen de copier une liste?
- 13. Quel est le meilleur moyen de structurer sémantiquement une FAQ?
- 14. Quel est le meilleur moyen d'accéder à un middleware Connect?
- 15. Quel est le meilleur moyen de charger une image distante?
- 16. Quel est le meilleur moyen de redimensionner un objet BitmapData?
- 17. Quel est le moyen le meilleur/le plus efficace pour envoyer des images à un serveur?
- 18. Quel est le meilleur moyen de restructurer un tableau d'objets?
- 19. Quel est le meilleur moyen de restreindre l'accès à Laravel?
- 20. Quel est le meilleur moyen de rediriger les requêtes réseau?
- 21. Quel est le meilleur moyen de réduire une donnée json?
- 22. Quel est le meilleur moyen de réorganiser un tableau
- 23. Quel est le meilleur moyen de sécuriser un environnement javascript?
- 24. Quel est le meilleur moyen d'obtenir l'emplacement?
- 25. Quel est le meilleur nom possible pour un serveur de sauvegarde dans un environnement de développement?
- 26. Quel est le meilleur moyen d'obtenir les clés de IreliableDictionary
- 27. Quel est le meilleur moyen de stocker la paire clé/valeur dans l'application wpf C#?
- 28. Quel est le meilleur moyen de plusieurs données?
- 29. Quel est le meilleur moyen d'appeler Form.ShowDialog()?
- 30. serveur de discussion: quel est le meilleur moyen (optimisé) d'enregistrer un journal de conversation?
Existe-t-il des exigences sur le serveur? Sinon, je envisagerais d'utiliser un serveur HTTP et d'utiliser ce protocole pour envoyer des données. – claesv