HTTP - Antwortfelder einfach ermittelt ;)
Verfasst: 09.06.2014 10:48
Weil ich gerade die Dateigrösse von Files aus der GetHTTPHeader() Funktion ermitteln musste,
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)
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