Comment puis-je utiliser le AndroidHttpClient
en tant que client HTTP pour me connecter à un serveur distant? Je n'ai pas pu trouver de bons exemples dans la documentation ni sur internet.Comment utiliser le client HTTP Simple sous Android?
Répondre
public static void connect(String url)
{
HttpClient httpclient = new DefaultHttpClient();
// Prepare a request object
HttpGet httpget = new HttpGet(url);
// Execute the request
HttpResponse response;
try {
response = httpclient.execute(httpget);
// Examine the response status
Log.i("Praeda",response.getStatusLine().toString());
// Get hold of the response entity
HttpEntity entity = response.getEntity();
// If the response does not enclose an entity, there is no need
// to worry about connection release
if (entity != null) {
// A Simple JSON Response Read
InputStream instream = entity.getContent();
String result= convertStreamToString(instream);
// now you have the string representation of the HTML request
instream.close();
}
} catch (Exception e) {}
}
private static String convertStreamToString(InputStream is) {
/*
* To convert the InputStream to String we use the BufferedReader.readLine()
* method. We iterate until the BufferedReader return null which means
* there's no more data to read. Each line will appended to a StringBuilder
* and returned as String.
*/
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
votre lmgtfy a attiré beaucoup de drapeaux "offensifs". Je recommande fortement de ne pas le faire. –
J'ai compris. La prochaine fois je vais essayer de l'éviter. – Cristian
Pour que cela fonctionne avec GZIP, le flux segmenté, etc., utilisez plutôt HttpClient et entity.writeTo(). –
Vous pouvez utiliser comme ceci:
public static String executeHttpPost1(String url,
HashMap<String, String> postParameters) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
HttpClient client = getNewHttpClient();
try{
request = new HttpPost(url);
}
catch(Exception e){
e.printStackTrace();
}
if(postParameters!=null && postParameters.isEmpty()==false){
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(postParameters.size());
String k, v;
Iterator<String> itKeys = postParameters.keySet().iterator();
while (itKeys.hasNext())
{
k = itKeys.next();
v = postParameters.get(k);
nameValuePairs.add(new BasicNameValuePair(k, v));
}
UrlEncodedFormEntity urlEntity = new UrlEncodedFormEntity(nameValuePairs);
request.setEntity(urlEntity);
}
try {
Response = client.execute(request,localContext);
HttpEntity entity = Response.getEntity();
int statusCode = Response.getStatusLine().getStatusCode();
Log.i(TAG, ""+statusCode);
Log.i(TAG, "------------------------------------------------");
try{
InputStream in = (InputStream) entity.getContent();
//Header contentEncoding = Response.getFirstHeader("Content-Encoding");
/*if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
in = new GZIPInputStream(in);
}*/
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null){
str.append(line + "\n");
}
in.close();
response = str.toString();
Log.i(TAG, "response"+response);
}
catch(IllegalStateException exc){
exc.printStackTrace();
}
} catch(Exception e){
Log.e("log_tag", "Error in http connection "+response);
}
finally {
}
return response;
}
Vous pouvez utiliser ce code:
int count;
try {
URL url = new URL(f_url[0]);
URLConnection conection = url.openConnection();
conection.setConnectTimeout(TIME_OUT);
conection.connect();
// Getting file length
int lenghtOfFile = conection.getContentLength();
// Create a Input stream to read file - with 8k buffer
InputStream input = new BufferedInputStream(url.openStream(),
8192);
// Output stream to write file
OutputStream output = new FileOutputStream(
"/sdcard/9androidnet.jpg");
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
// publishing the progress....
// After this onProgressUpdate will be called
publishProgress("" + (int) ((total * 100)/lenghtOfFile));
// writing data to file
output.write(data, 0, count);
}
// flushing output
output.flush();
// closing streams
output.close();
input.close();
} catch (SocketTimeoutException e) {
connectionTimeout=true;
} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
Bienvenue sur Stack Overflow! Merci d'avoir posté votre réponse! Veuillez vous assurer de lire attentivement la [FAQ sur l'autopromotion] (http://stackoverflow.com/faq#promotion). Notez également qu'il est * obligatoire * que vous publiez une clause de non-responsabilité chaque fois que vous créez un lien vers votre propre site/produit. –
- 1. Agent utilisateur dans le client http Android
- 2. Android asynchronus problème client HTTP
- 3. Comment créer Yahoo Messenger Client sous Android?
- 4. Réponse HTTP 411 Longueur requise, Http Client 4.0.1 Android
- 5. Comment envoyer des en-têtes HTTP Basic Authentication sous Android?
- 6. Comment lire le PDF sous Android sans utiliser d'applications tierces?
- 7. Quel est le meilleur protocole de communication client à utiliser sous Android et iOS?
- 8. wrapper WSDL simple pour le processus HTTP?
- 9. simple client et le serveur
- 10. utiliser l'application android en utilisant le client WAP
- 11. Comment utiliser l'API client jersey dans un contexte android?
- 12. Comment empêcher le client http apache de suivre une redirection
- 13. post http android avec le paramètre
- 14. Comment lire le fichier MID sous Android?
- 15. Quelle version d'Apache HTTP Client est incluse dans Android 1.6?
- 16. Comment utiliser le client Oracle 11g?
- 17. IIS7 Authentification http simple
- 18. Comment définir le module GPS sous Android?
- 19. Android: problème avec le programme simple UDP
- 20. Quel framework HTTP utiliser pour une application simple mais évolutive?
- 21. Http Connexion dans Android
- 22. VB.net Simple IRC Client
- 23. Android: HTTP Publication numéro
- 24. ne peut pas utiliser Http méthode Post dans l'application android
- 25. Un simple client SOAP java
- 26. Comment rendre le PDF sous Android
- 27. Possibilité de télécharger un fichier via le client HTTP Zend?
- 28. Utiliser HTTP dans InnoSetup
- 29. Connexions client Http persistantes dans Java
- 30. Quel composant utiliser pour créer une barre d'outils sous Android?
Ceci est en fait une question utile. Il n'y a pas beaucoup d'exemples d'utilisation d'AndroidHttpClient. Peut-être que la question devrait être plus précise. –
J'ai mis à jour ceci pour en faire une vraie question. Veuillez le rouvrir parce que, comme vous pouvez le voir, cette question a été utile à beaucoup de gens. –
Allons-nous rouvrir ceci ou quoi? –