7
votes

Télécharger une partie d'un fichier à l'aide de demandes HTTP

J'essaie de télécharger une partie d'un fichier PDF (juste pour tester la "plage"). J'ai demandé au serveur pour les octets (0-24) dans la plage mais toujours, au lieu d'obtenir des 25 premiers octets (une partie) hors du contenu, je reçois le contenu de la longueur totale. De plus, au lieu d'obtenir un code de réponse comme 206 (contenu partiel), je reçois le code de réponse comme 200.

Voici mon code: xxx

Voici la sortie: < BR> Code de respnse: 200
Longueur de contenu: 94973848
Taille téléchargée: 94973848

Merci d'avance.


1 commentaires

Pouvez-vous vérifier qu'un programme capable de télécharger des gammes télécharge bien une gamme? (Essayez de commencer wget, ctrl + c'ing, et le recommencez) Certains serveurs peuvent rejeter la demande comme.


4 Réponses :


-3
votes

Je pense que l'en-tête correct est "Content-gamme", pas "plage" comme vous l'utilisez.


2 commentaires

gstack, essayé avec "Content-gamme" aussi; Obtenir le même sortie


Nope Afaik. La gamme de contenu est ce que les réponses du serveur. Gamme de ce que vous devez demander.



1
votes

Si le serveur supporte-le (et les serveurs HTTP 1.1 doivent), alors que vous pouvez utiliser des demandes de gamme ... Et si tout ce que vous voulez faire est de vérifier, alors envoyez simplement une demande de tête au lieu d'une demande d'obtention. Mêmes en-têtes, même tout, juste "Head" au lieu de "Get". Si vous recevez une réponse 206, vous saurez que la plage est prise en charge, sinon vous obtiendrez une réponse de 200.


1 commentaires

GStack, j'ai envoyé un "Head" Demande et a reçu le code de réponse comme étant 200. Cela doit impliquer que le serveur ne prend pas en charge "reprise" de la fonctionnalité de téléchargements. Ensuite, j'aimerais savoir, comment puis-je "mettre en pause" et "reprendre" ce fichier de ce fichier dans d'autres gestionnaires de téléchargement. De plus, ce serait génial si vous pouviez suggérer des liens HTTP dont la partie de contenu peut être téléchargée par cette méthode.



11
votes

Essayez de changer de suite: xxx

avec: xxx

selon la spécification 14.35.1 byges gammes

De même, selon la spécification 14.5 Accepter-gammes , vous pouvez également vérifier si votre serveur prend en charge la récupération de contenu partiel ou ne pas utiliser le suivant: < / p> xxx


1 commentaires

Certains serveurs peuvent bien répondre correctement avec 206 mais pas avoir Accepter-gammes en-tête du tout.



-2
votes

Vous devez vous connecter à URL avant SetrequestProperty

Modification: xxx

à: xxx


0 commentaires