Bonjour,
Quelques pistes:
- Comme tu l'as bien lu dans l'aide: ne plus utiliser GetHTTPHeader()
Attention
Cette fonction est dépréciée, elle sera peut-être supprimée dans une future version de PureBasic. Elle ne doit pas être utilisée dans du nouveau code.
Note: Veuillez utiliser HTTPRequest() à la place.
- InitNetwork(): on ne l'appelle qu'une seule fois (au début du programme)
- On peut aller plus vite en utilisant #PB_Http_StatusCode, #PB_Http_Response, pour savoir si la requête est OK et avoir le message d'erreur avec #PB_Http_ErrorMessage.
- Penser à fermer les requêtes FinishHTTP()
- Les opérations réseau nécessitent du temps de réponse, ne pas faire de timer trop court.
- Inutile de filtrer ligne par ligne: FindString() peut lire toute une chaine même avec sauts de ligne.
Code : Tout sélectionner
; Un seul appel à InitNetwork()
InitNetwork()
; EnTete$ = GetHTTPHeader(pfe$) ne plus utiliser cette méthode
ID_HTTP = HTTPRequest(#PB_HTTP_Get, "https://www.purebasic.com/")
EnTete$ = HTTPInfo(ID_HTTP, #PB_HTTP_Headers)
If FindString(EnTete$,"HTTP/1.1 200 OK", #PB_String_NoCase)
state.b = 1
Debug "Requête OK"
; Mieux: #PB_Http_StatusCode dès le début.
EndIf
If FindString(EnTete$, "Content-Length:", #PB_String_NoCase)
size$ = LTrim(Mid(Ligne$, 16))
Debug "Longueur; " + size$
EndIf
Debug "--- Entête complet ---"
Debug EnTete$
FinishHTTP(ID_HTTP)
