2010-11-27 38 views
1

Je tente d'utiliser le projet gdata à partir d'une application Android. J'essaye de télécharger un nouveau fichier de csv à google docs, mais je continue à rencontrer une erreur 411 (Content-Length). Mon code ressemble à:chargement de csv avec gdata - Erreur Content-Length

GoogleService ss = new SpreadsheetService("testApp"); 
ss.setUserCredentials("<username>", "<password>"); 

DocumentListEntry newEntry = null; 
newEntry = new DocumentListEntry(); 
newEntry.setTitle(new PlainTextConstruct("my.csv")); 
TextConstruct tc = TextConstruct.plainText("1,2,3,4,5,6,7,8,9,10");   
newEntry.setContent(new TextContent(tc)); 

DocumentListEntry res = ss.insert(new URL("https://docs.google.com/feeds/default/private/full/"), newEntry); 

Depuis la lib GData est les appels rendus analytiques réseau de moi, je suppose que je ne ai pas besoin de mettre moi-même Content-Length, ce qui conduit à me croire que je suis tout simplement n'utilisant pas la lib correctement.

Qu'est-ce qui me manque? Merci.

+0

Je ne suis pas sûr de GData - il n'est pas nécessaire d'ajouter '\ n' à la fin du fichier/contenu, n'est-ce pas? Je suppose que la classe TextConstruct est le problème ici. –

Répondre

1

Le contenu du fichier ne doit pas être défini dans les métadonnées mais envoyé le long des métadonnées à l'aide d'une requête HTTP multipart. La bibliothèque cliente prend soin de le faire et vous pouvez définir le contenu en utilisant:

newEntry.setFile(/* java.io.File instance */ file, /* MIME type */ "text/csv"); 

Cela nécessite de charger les données d'un fichier, mais vous pouvez utiliser les flux pour charger de la mémoire. Un exemple plus détaillé peut être found dans la page du projet de bibliothèque client Java.