Règles du forum

Le langage Ada uniquement, pas les compilateurs. Les questions de sémantique et de langage et les questions techniques liées à une application en particulier, son deux choses différentes. Si nécessaire, un forum sur GNAT et les autres compilateurs, tel JanusAda, sera ouvert.

Auteur Message
Beau Parleur
Avatar de l’utilisateur
Bonjour Hibou !

Input est le pattern recherché, composé de chaînes variables entre joker '*

Ce que j'ai décomposé en *String1*String2*... Etc..
Profil
Administrateur
Avatar de l’utilisateur
D’accord, mais ce sont les indices qui je ne comprends pas.

Ou alors quand tu dis “1+2+N”, tu veux dire toutes les chaines ?
Profil
Beau Parleur
Avatar de l’utilisateur
Bonjour !

Oui alors, j'ai dit ceci :

Code : 

input [*String1*String2*,...String N]

Pour chaque toute addresses visité chercher input ou string N dans input
si on on trouve input la cherche termine.
Si non si on trouve String 1+2+N alors on suie le href correspondant à String N si il exsite.


J'eu du dire celà :

Code : 

input [*String1*String2*,...String N]

Pour chaque toute addresses visité chercher input ou string N dans input
si on on trouve input la cherche termine.
Si non si on trouve String i alors on suie les hrefs correspondant à String 1+2+i si il exsite.


Voilà, en espérant que ceci t'éclaire suffisemment.

Je corrige même parce que c'était pas ça.
Profil
Beau Parleur
Avatar de l’utilisateur
Bonjour Hibou !

Je suis confronté à un problème lors de mes voyage à travers le WWW.
Souvant, je dois accepter des cookies pour accéder à la page souhaitée.
Je cherche comment accepter un cookie dans mon cas d'utilisation.
Je fais juste un AWS.Client.Get(URL => mon_url, Header => mon_header)

Si tu avais un tuyau à me refiler pour gagner la course...

A part ça ça avance, j'en suis à la version 2016.3.10a d'adamanborg, dispo sur sourceforge, qui fait des requêtes en dehors du site web visité.
Profil
Administrateur
Avatar de l’utilisateur
Un cookie, c’est un champs d’entête de la requête et de la réponse. Il faut extraire le contenu de ce champs quand il est reçu avec un entête de réponse, afin de le stocker pour pouvoir le fournir à nouveau dans un entête de requête ; ainsi de suite, en le mettant à jours à chaque fois, si un entête de réponse contient une nouvelle valeur pour le même cookie. Chaque cookie est identifié par son nom de domaine et son nom. Il faut faire très attention à ne jamais transmettre un cookie d’un nom de domaine à un autre nom de domaine (pour les sous‑domaines, il faut vérifier, je ne sais plus), car ça peut être une faille de sécurité. Si je ne me trompe pas, tous les cookies d’un domaine, doivent être transmis à chaque requête (et mis à jour à chaque réponse, si une réponse contient une nouvelle valeur pour un cookie). Comme un nom de domaine peut avoir plusieurs cookies avec des noms différents, il faut utiliser une table associative, pour stocker les cookies d’un domaine.

Tout est décrit dans cette référence : RFC 6265 — HTTP State Management Mechanism (ietf.org).
Profil
Beau Parleur
Avatar de l’utilisateur
Bonjour Hibou, bonjour.

Je suis géné de n'avoir posé la bonne question, en même temps je ne la trouve pas.

J'ai un problème, je ne parviens pas à obtenir la page de bulleforum (entre autre forum)

Je sais pas pourquoi donc je n'ai plus de question.
J'ai posté ma reqêtes.


J'ai beau mettre le Timeout à 10s ça change rien, j'ai un autre problème.

J'ai pas de cookie à envoyer puisque c'est mon premier accès. Finalement.
Profil
Administrateur
Avatar de l’utilisateur
Il n’y a effectivement pas besoin de cookie pour accéder à une simple page, même si l’entête de réponse que normalement tu reçois, contient un champ Set-Cookie.

Normalement, avec une requête comme celle‑ci, ça fonctionne, et tu devrais recevoir en réponse, le HTML de la page d’accueil :

Code : 

GET / HTTP/1.1
Host: bulleforum.net
Accept: */*
Content-Type: text/html
Content-Length: 0
Profil
Beau Parleur
Avatar de l’utilisateur
Ah mais si le content length est à 0 c'est normal que je traite rien.
Profil
Administrateur
Avatar de l’utilisateur
Le Content-Length égale à zéro, c’est dans l’entête de la requête, pas dans l’entête de la réponse.

L’entête de la réponse n’a pas de Content-Length, parce qu’il indique ceci :

Code : 

Transfer-Encoding: chunked


Et un entête de réponse ne peut pas avoir un Transfer-Encoding autre que Identity et un Content-Length. En d’autres mots, Content‑Length et Transfer-Encoding sont mutuellement exclusifs, et donc s’il y a un Transfer-Encoding, il n’y a pas de Content-Length.

Je me demande justement si ton logiciel traite correctement ce type de réponse, qui est par paquets. De mémoire, le dernier paquet est un paquet vide, c’est comme ça qu’on le reconnait (si je me souviens bien).
Profil
Beau Parleur
Avatar de l’utilisateur
Je récupère en une string le body de la page, je cherche après à matcher un pattern ligne par ligne délimitées par des line terminator.

Le problème est que aparemment je reçois pas la page.
Ou elle est vide. ou je la vois pas. Je vais continuer à chercher.
Profil