bastelte ich mir einen kleinen Helfer, um an die verschiedenen HTTP-Antwortfelder zu kommen.
Falls jemand noch nicht auf diese Idee gekommen ist
Der Mapkey ist übrigens immer UCase(). Die Antwort natürlich nicht.
Den Key "STATUS" habe ich dazugedichtet um den typischen Antwortcode
eines Servers abzulegen (z.B. : HTTP/1.0 200 ok)
Code: Alles auswählen
EnableExplicit
Procedure _GetHTTPHeader(Url.s, Map Header.s())
Protected String.s, i, bString.s
ClearMap(Header())
If InitNetwork()
String = GetHTTPHeader(Url)
If String <> ""
For i = 1 To CountString(String, Chr(13) + Chr(10))
bString = Trim(StringField(String, i, Chr(13) + Chr(10)))
If bString <> ""
If Left(LCase(bString), 4) = "http"
Header("STATUS") = bString
Else
Header(UCase(StringField(bString, 1, ":"))) = Trim(StringField(bString, 2, ":"))
EndIf
EndIf
Next i
EndIf
EndIf
ProcedureReturn MapSize(Header())
EndProcedure
;:- Demo
NewMap kk.s()
If _GetHTTPHeader("http://purebasic.fr/german/styles/subsilver2/imageset/PureBoardLogo.png", kk())
If FindMapElement(kk(), "CONTENT-LENGTH")
Debug LSet(MapKey(kk()), 30, " ") + kk()
EndIf
EndIf