2010-01-19 3 views
1

voici ce que je veux faire et besoin d'aide en elle. J'ai un URL source et un URL de destination. ce que je veux faire est de copier un fichier d'une url source à l'url de destination, mais je veux éviter de copier le fichier localement sur mon système avant de télécharger à nouveau le fichier.httpclient obtenir et mettre

De plus, ce que nous devons avoir, c'est que nous devrions obtenir la longueur du contenu parce que l'API de destination l'exige (c'est la coutume). Si j'utilise la classe HttpUrlConnection alors je peux obtenir cela .... mais je pense qu'il y a quelques problèmes dans l'utilisation de java.net pour autre chose que GET. (Les fichiers sources sont d'énormes fichiers image/vidéo), donc je peux utiliser Apache httpclient 3.1. Mais comment puis-je aborder cela?

des pensées?

-Ash

Répondre

1

Avez-vous essayé ce qui suit?

Voir ceci tutorial.

EDIT

Vous devriez être en mesure d'obtenir la taille de réponse du GET avec GetMethod.getResponseContentLenght (ce qui correspond à l'en-tête Content-Length, le cas échéant).

Ensuite, je vous suggère de regarder l'un des suivants pour la méthode PUT: setRequestContentLenght, addContentLenghtRequestHeader, setContentChunked.

+0

Oui, mais comment puis-je obtenir la longueur de contenu de InputStream is = getMethod.getResponseBodyAsStream(); ? Je ne veux pas télécharger le fichier localement ... Des idées? -Ash – ashchawla

0

Je veux éviter de copier le fichier localement sur mon système avant de le télécharger à nouveau le fichier

Eh bien, vous allez avoir à vivre avec elle, parce que comment fonctionne HTTP. Si vous voulez effectuer des transferts de distance à distance, vous allez soit utiliser autre chose que HTTP (bien que je ne connaisse aucun protocole approprié), soit exécuter à distance des logiciels sur l'un des sites distants pour effectuer le transfert.