Publié le 02/09/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Charger l'entete d'un fichier via le protocole HTTP

La communication avec un serveur via HTTP fonctionne sur principe du client qui envoie une demande au serveur puis du serveur qui répond à notre requete. La réponse du serveur contient toujours une entete pour en apprendre d'avantage sur le contenu à télécharger et de vérifier que tout s'est bien passé.

Lire le header d'un ficher via Http

Le header du contenu est la première réponse que le serveur envoie à une requete. L'entete contient un élement important à savoir le status du document: 200 le document est prêt à etre chargé, un autre code oups !
En JAVA, la commande getHeaderFields retourne les informations concernant le document à charger:
- 200 OK: status du document,
- Content-Type: type de fichier,
- Expires: date d'expiration,
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
/**
 * Charger l'entete d'un fichier HTML
 * http://www.fobec.com/java/988/charger-entete-fichier-via-protocole-http.html
 * @author Axel 2010
 */
public class HttpResponseHeader {
 
    public static void main(String[] args) {
        try {
            URL url = new URL("http://www.fobec.com");
            URLConnection connection = url.openConnection();
 
            Map map = connection.getHeaderFields();
            Set set = map.entrySet();
 
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Pour la page d'index du suite Fobec.com, la class renvoie les données ci-dessous:
null=[HTTP/1.0 200 OK]
Content-Language=[fr]
Date=[Wed, 25 Feb 2010 16:08:25 GMT]
Content-Length=[21827]
Expires=[Thu, 26 Feb 2010 16:08:25 GMT]
Set-Cookie=[PHPSESSID=5939f4299b71b8a3a04a83d2c30a91f6; path=/]
Connection=[keep-alive]
Content-Type=[text/html; charset=utf-8]
X-Cache=[MISS from ipcop.localdomain]
X-Powered-By=[PHP/5.5.20]
Server=[Apache]

A y regarder de plus pret, on trouve :
Content-Length: taille du document à charger,
Date: date de création du fichier,
Expires: date d'expiration de la ressource,
...
Bref toutes les informations indispensables à une communication client/serveur se trouve dans l'entete que l'on peut charger directement avec getHeaderFields() en JAVA.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
02/09/2010
Visualisation
vu 2332 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Sophie dans tuto

Merci pour cette explication claire qui m'aide grandement... JS et moi, on est pas encore copain !

Publié par JMC dans logiciel

L'adresse donnée est celle du provider et non celle de l'utilisateur apparemment, il me localise a Braine l'Alleud et je me trouve à Huy ?
Sinon génial qui en est l'auteur ?
Cordia...

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par aalex57 dans tuto

Bonsoir,

Merci pour l'astuce, cependant votre fichier php ne fonctionne pas chez moi.
Il m'indique une erreur à la ligne 16 :/

Publié par Do dans tuto

Et lorsque l'on a un recordset a parcourir ? Que faut-il passer a la vue ? ligne par ligne ou un tableau ? ?
Le PHP est a lui seul deja un systeme de template :
>?php
echo $titre;
?>