79 votes

Tester le téléchargement de fichiers à l'aide de la méthode HTTP PUT

J'ai écrit un service utilisant la méthode HTTP PUT pour télécharger un fichier.

Les navigateurs Web ne prennent pas en charge PUT, j'ai donc besoin d'une méthode de test. Cela fonctionne très bien comme un POST le frappant à partir d'un navigateur.

mise à jour : C'est ce qui a fonctionné. J'ai essayé Poster mais il souffre de la même chose que l'utilisation de violoneux. Il faut savoir construire la requête. curl s'occupe du problème.

 curl -X PUT "localhost:8080/urlstuffhere" -F "file=@filename" -b "JSESSIONID=cookievalue"

182voto

alienhard Points 5837

À mon avis, le meilleur outil pour de tels tests est curl . Son --upload-file télécharge un fichier par PUT , ce qui est exactement ce que vous voulez (et il peut faire bien plus, comme modifier les en-têtes HTTP, au cas où vous en auriez besoin) :

 curl http://myservice --upload-file file.txt

25voto

Mahdi Bashirpour Points 1406
curl -X PUT -T "/path/to/file" "http://myputserver.com/puturl.tmp"

1voto

Simbiat Points 55

Si vous utilisez PHP, vous pouvez tester votre téléchargement PUT en utilisant le code ci-dessous :

 #Initiate cURL object
$curl = curl_init();
#Set your URL
curl_setopt($curl, CURLOPT_URL, 'https://local.simbiat.ru');
#Indicate, that you plan to upload a file
curl_setopt($curl, CURLOPT_UPLOAD, true);
#Indicate your protocol
curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
#Set flags for transfer
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
#Disable header (optional)
curl_setopt($curl, CURLOPT_HEADER, false);
#Set HTTP method to PUT
curl_setopt($curl, CURLOPT_PUT, 1);
#Indicate the file you want to upload
curl_setopt($curl, CURLOPT_INFILE, fopen('path_to_file', 'rb'));
#Indicate the size of the file (it does not look like this is mandatory, though)
curl_setopt($curl, CURLOPT_INFILESIZE, filesize('path_to_file'));
#Only use below option on TEST environment if you have a self-signed certificate!!! On production this can cause security issues
#curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
#Execute
curl_exec($curl);

-1voto

ibic Points 470

Pour curl , que diriez-vous d'utiliser le commutateur -d J'aime : curl -X PUT "localhost:8080/urlstuffhere" -d "@filename" ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X