2010-06-11 10 views
3

Je veux télécharger un fichier txt sur un site Web, je dois admettre que je n'ai pas regardé dans tout le détail, mais j'ai regardé quelques exemples et voudrais des opinions plus expérimentées sur si je vais dans le bonne direction.Android - Comment télécharger un fichier txt sur un site Web?

Voici ce que j'ai jusqu'à présent:


DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpContext localContext = new BasicHttpContext(); 
private String ret; 

HttpResponse response = null; 
HttpPost httpPost = null; 


public String postPage(String url, String data, boolean returnAddr) { 

    ret = null; 

    httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109); 

    httpPost = new HttpPost(url); 
    response = null; 

    StringEntity tmp = null;   

    try { 
     tmp = new StringEntity(data,"UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     System.out.println("HTTPHelp : UnsupportedEncodingException : "+e); 
    } 

    httpPost.setEntity(tmp); 

    try { 
     response = httpClient.execute(httpPost,localContext); 
    } catch (ClientProtocolException e) { 
     System.out.println("HTTPHelp : ClientProtocolException : "+e); 
    } catch (IOException e) { 
     System.out.println("HTTPHelp : IOException : "+e); 
    } 
      ret = response.getStatusLine().toString(); 

      return ret; 
} 

Et je l'appelle comme suit:


postPage("http://www.testwebsite.com", "data/data/com.testxmlpost.xml/files/logging.txt", true)); 

Je veux être en mesure à uploa d un fichier de l'appareil à un site Web.

Mais en essayant de cette façon, je reçois la réponse suivante.


HTTP/1.1 405 Method Not Allowed 

Suis-je essayer la bonne façon ou devrais-je faire d'une autre façon?

Répondre

3

Ce code semble raisonnable, l'erreur provient du serveur et indique que POST n'est pas autorisé pour cette page.

Vous envoyez la chaîne littérale "data/data/com.testxmlpost.xml/files/logging.txt". Si vous souhaitez publier un fichier, utilisez un FileEntity.

+0

Merci je pensais que, puis-je demander si est le code en essayant de publier le fichier situé à data/data/com.testxmlpost.xml/files/logging.txt ou est-il en train d'essayer la chaîne "données/données /com.testxmlpost.xml/files/logging.txt "? –

+0

La chaîne. Vous pouvez utiliser un FileEntity à la place. –

+0

Merci Matthew, je l'ai changé en une entité de fichier et j'utilise un serveur qui a été mis en place pour permettre le téléchargement, mais je reçois la même réponse, existe-t-il une autre façon de faire autre que POST? –

Questions connexes