API HttpQueryInfo: Alle HTTP Header-Zeilen?

17/04/2008 - 11:31 von Wolfgang Badura | Report spam
Hallo!

Vielleicht kann mir jemand helfen, wie ich a l l e Header-Zeilen einer
http-Response mit der API-Funktion HttpQueryInfo erhalten kann:

(Ich habe den Code etwas verkürzt, aber die wesentlichen Stellen lauten wie
folgt)



Wenn ich mit dem iNet-Control die Anforderung



strURL
http://freedb.freedb.org/~cddb/cddb.cgi?cmd=cddb+query+d5127510+16+150+16232+37797+52487+61010+74780+82227+90732+114192+123875+145182+160437+240845+262970+315857+333620+4724&hello=name+host.com+appname+1.1&proto=6



Inet1.URL = strURL

strOperation = "GET"

Inet1.Execute , strOperation

While Inet1.StillExecuting

DoEvents

Wend

pzHeader = Inet1.GetHeader



erhalte ich folgende Antwort in pzHeader:



HTTP/1.1 200 OK

Date: Wed, 16 Apr 2008 19:45:42 GMT

Server: Apache/2.0.54 (Debian GNU/Linux)

Expires: Wed Apr 16 21:45:42 2008





Wenn ich aber mit

scUserAgent= "http Beispiel"

strHost = "freedb.freedb.org"

strRequest = "
/~cddb/cddb.cgi?cmd=cddb+query+d5127510+16+150+16232+37797+52487+61010+74780+82227+90732+114192+123875+145182+160437+240845+262970+315857+333620+4724&hello=name+host.com+appname+1.1&proto=6"



hInternetSession = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, _

vbNullString, vbNullString, 0)



If CBool(hInternetSession) Then

hInternetConnect = InternetConnect(hInternetSession, strHost, _

INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, _

INTERNET_SERVICE_HTTP, 0, 0)



If hInternetConnect > 0 Then

hHttpOpenRequest = HttpOpenRequest( _

hInternetConnect, "HEAD", strRequest, _

"HTTP/1.1", vbNullString, 0, INTERNET_FLAG_RELOAD, 0)



If CBool(hHttpOpenRequest) Then

iRetVal = HttpSendRequest(hHttpOpenRequest, vbNullString, 0,
0, 0)

If iRetVal Then

iRet = HttpQueryInfo(hHttpRequest,
HTTP_QUERY_RAW_HEADERS_CRLF, ByVal sBuffer, lBufferLength, 0)



erhalte ich nur



HTTP/1.1 200 OK

Date: Thu, 17 Apr 2008 08:41:42 GMT

Server: Apache/2.0.54 (Debian GNU/Linux)

Expires: Thu Apr 17 10:41:43 2008




Es fehlt die Zeile


zur Gànze, die Zeile Content-Type:

ist unvollstàndig, sie müßte eigentlich


lauten.



Wenn ich INTERNET_FLAG_RELOAD gegen INTERNET_FLAG_RAW_DATA

tausche oder beide Werte addiere àndert sich nichts.



Wie kann ich nun mit der API-Funktion HttpQueryInfo alle

Header-Informationen erhalten , die das iNet-Control liefert.

(übrigens: das Winsock-Control liefert auch a l l e Headerinformationen)



Besten Dank schon im Voraus.

Wolfgang
 

Lesen sie die antworten

#1 Schmidt
18/04/2008 - 12:49 | Warnen spam
"Wolfgang Badura" schrieb im Newsbeitrag
news:480718e3$0$8120$

(übrigens: das Winsock-Control liefert auch a l l e
Headerinformationen)


Dann würde ich das auch nehmen - bzw. direkt mit dem
Socket-API arbeiten, wenn es Dir um das Vermeiden
von Dependencies geht.

Olaf

Ähnliche fragen