Est-il nécessaire de régler la Longueur du Contenu dans mon en-tête de réponse?
Je suis en revue une partie de l'héritage de code et j'ai trouvé un bug qui provoque la réaction de s'asseoir indéfiniment.
Voici l'idée de base:
Response.Content-Type = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename" & someFileName)
Response.AddHeader("Content-Length", someStoredLength)
Response.BinaryWrite(someByteArray)
Response.Flush()
Response.End()
Le problème est que someStoredLength est beaucoup plus grande que la taille réelle de someByteArray, de sorte que le client se trouve juste là en attente pour le téléchargement de fichier alors que le navigateur tourne juste.
Je suis en contemplant juste de retirer le AddHeader qui spécifie la longueur du contenu, parce que lorsque je fais cela, tout semble bien fonctionner, mais je suis inquiet que je ne suis pas à comprendre quelque chose.
Est-il ok pour moi pour supprimer cette AddHeader ou dois-je trouver une meilleure façon de traiter ce problème?
Ce n'est pas vraiment pertinente à la question. Le problème se produit au niveau du navigateur en raison de les en-têtes HTTP.
Le code est dans VB.NET mais je peut en trouver dans d'autres endroits où l'héritage se fait en ASP classique
OriginalL'auteur Joseph | 2009-09-11
Vous devez vous connecter pour publier un commentaire.
Modifier le Contenu de Longueur de la ligne à la suivante:
Oui. Le contenu de l'en-tête de longueur indique le nombre d'octets dans le contenu. Votre contenu est un tableau d'octets, de sorte que vous êtes bon.
OriginalL'auteur Stephen
Votre demande DOIT (défiler vers le bas pour Content-Length) définir, cependant, il n'est pas strictement nécessaire.
Voici un décent de discussion d'options possibles.
Lien Direct vers Content-Length voir aussi HttpBis
OriginalL'auteur Ben S