2017-10-03 1 views
1

Hey j'essaye de construire un client HTTP, et je ne peux pas sembler comprendre pourquoi je ne reçois pas le code "304, non modifié". La dernière date de modification du fichier est en 2007 et j'y accéderai 10 ans plus tard.HTTP ne pas revenir 304

Voici la sortie

HTTP/1.1 200 OK 
Date: Tue, 03 Oct 2017 21:50:33 GMT 
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips 
Last-Modified: Fri, 31 Aug 2007 04:21:06 GMT 
ETag: "c12-438f726ceb080" 
Accept-Ranges: bytes 
Content-Length: 3090 
Content-Type: image/gif 

et le code java pour référence, j'utilise des prises.

Date d = new Date(); 
outputStream.print("HEAD "+ "/" + pathName + " HTTP/1.1\r\n"); 
outputStream.print("If-Modified-Since: " + d.toString() + "\r\n"); 
outputStream.print("Host: " + hostString+"\r\n"); 
outputStream.print("\r\n"); 
outputStream.flush(); 

toute aide serait appréciée, je suis nouveau aux clients HTTP.

+0

Il serait bon d'utiliser quelque chose comme Wireshark ou Fiddler pour montrer à quoi ressemblent les en-têtes de requête et de réponse. –

Répondre

2

Vous devrez peut-être formater la date que vous utilisez pour l'en-tête "If-Modified-Since". Voici la syntaxe (extrait de here):

If-Modified-Since: jour nom, jour mois année heure: minute: seconde GMT

Exemple:

If- Modifié depuis: Mer, 21 Oct 2015 07:28:00 GMT

+0

Carp, j'ai oublié de vérifier, oui ma date était mon fuseau horaire pas GMT, merci beaucoup! – shadowforce100

+0

Ça arrive. Aucun problème! – davidmerrick