Du bist nicht angemeldet.

Kontrollzentrum

Spenden

Jeder Euro hilft uns, euch zu helfen.

Adsense

Downloads

Stabil: 3.3.8.1 (Q, H)
Stabil: 3.3.10.2 (Q, H)
Beta: 3.3.11.4 (Q, H)
SciTE: 4/5/2014 (Q, H)
Hilfe Deutsch: 12/23/2013 (Q)
Download: OrganizeIncludes (Q)
Stand: 08.04.2014 - 15:42 Uhr

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »DarkManX« ist der Autor dieses Themas

Registrierungsdatum: 10. März 2012

  • Private Nachricht senden

1

Samstag, 10. März 2012, 14:45

WinHttp Headers vom Request

Hallo,

ich benutze die WinHttp-Lib und kriege es nicht hin, die Headers eines Requests auszulesen. Mit der Funktion _WinHttpQueryHeaders kriege ich nur die Headers der Serverantwort auf die Anfrage. Ich will aber irgendwie die Headers der Anfrage auslesen. Hoffe einer kann mir helfen!

Danke!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DarkManX« (11. März 2012, 09:09)


chip

Poweruser

Registrierungsdatum: 8. Juni 2009

Beruf: Fachinformatiker

  • Private Nachricht senden

Greek

User

Registrierungsdatum: 27. März 2008

Wohnort: Darmstadt

Beruf: Informatik-Student

  • Private Nachricht senden

3

Samstag, 10. März 2012, 19:47

Mit der Funktion _WinHttpQueryHeaders kriege ich nur die Headers der Serverantwort auf die Anfrage. Ich will aber irgendwie die Headers der Anfrage auslesen. Hoffe einer kann mir helfen!


? Weiß nicht genau was du willst, hier mal ein Beispiel:

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <WinHTTP.au3>

$hw_open = _WinHttpOpen("AutoIt")
$hw_connect = _WinHttpConnect($hw_open,"autoit.de" )
$h_openRequest = _WinHttpOpenRequest($hw_connect, "GET", "/", "HTTP/1.1")
_WinHttpSendRequest($h_openRequest)
_WinHttpReceiveResponse($h_openRequest)

$header = _WinHttpQueryHeaders($h_openRequest)
MsgBox(0, "Header", $header)
If _WinHttpQueryDataAvailable($h_openRequest) Then
    Local $data=""
    Do
        $data&=_WinHttpReadData($h_openRequest)
    Until @error<>0
    MsgBox(0, "Body", $data)
    ClipPut($data) ; Kannst du in eine html datei kopieren und ausführen
EndIf


_WinHttpCloseHandle($h_openRequest)
_WinHttpCloseHandle($hw_connect)
_WinHttpCloseHandle($hw_open)


Ich glaub dir geht es aber darum, wo man überhaupt das Packet her bekommt das man schicken muss?
Das bekommt man z.B. mit dem Addon Live HTTP Headers für Firefox.

Gruß Greek

SEuBo

User

Registrierungsdatum: 1. März 2009

Wohnort: Unter deinem Bett

Beruf: SAP Consultant

  • Private Nachricht senden

4

Samstag, 10. März 2012, 20:24

Ein Request ist die Antwort des Servers.

Eine RESPONSE ist die Antwort des Servers!

Ich will aber irgendwie die Headers der Anfrage auslesen.

WinHTTP-Intern kenne ich dafür keine Möglichkeit.
Mein Tipp: Benutze einen HTTP/HTTPS-Sniffer, wie "Fiddler2" dafür, damit funktioniert es problemlos. Du darfst nur nicht vergessen, den WinHTTP-Traffic über Fiddler zu leiten, also Fiddler als Proxy für WinHTTP zu setzen. ( Standardmäßig nutzt Fiddler glaube ich 127.0.0.1:8888 )

  • »DarkManX« ist der Autor dieses Themas

Registrierungsdatum: 10. März 2012

  • Private Nachricht senden

5

Samstag, 10. März 2012, 22:14

SEuBo hat mich - glaube ich - richtig verstanden, die anderen leider nicht. Um es für alle nochmal verständlicher auszudrücken:
Die Antwort eines Servers auf eine Anfrage hat Headers, die kann man mit _WinHttpQueryHeaders auslesen. Die Anfrage selbst hat auch Headers, die man selber erstellt. Jetzt wollte ich diese Headers der Anfrage auslesen, da es bei mir nicht richtig funktioniert und die Headers dynamisch erstellt werden. Damit will ich gucken, was mein Script denn so für Headers erstellt und wo ggf der Fehler liegt.

Ist ja ziemlich blöd die Anfrage über ein Proxy zu schicken um die Headers rauszukriegen. Es muss doch eig ne Möglichkeit geben, diese irgendwie auszulesen. Ein RequestHandle via WinHttp ist ja offenbar die Rückgabe der DllCall()-Funktion zurück. Der Rückgabetyp ist aber anscheinend polymorph. Habe da nicht so richtig durchgeblickt was denn dll's sind, habe sonst immer nur Webseiten programmiert. Worauf verweist nun dieser RequestHandle? ?(

Grüße

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »DarkManX« (10. März 2012, 23:14)


SEuBo

User

Registrierungsdatum: 1. März 2009

Wohnort: Unter deinem Bett

Beruf: SAP Consultant

  • Private Nachricht senden

6

Sonntag, 11. März 2012, 00:25

Worauf verweist nun dieser RequestHandle?

Dieser Request-Handle ist ein sogenannter hInternet-Handle. Und ja, es gibt mit Sicherheit eine Möglichkeit, diese Request Headers auszulesen. Nur ist das von Microsoft wohl nicht vorgesehen, und deswegen auch nicht über die integrierten Funktionen der WinHTTP API zu lösen. Die Möglichkeit, einen Sniffer zu verwenden ist mit Sicherheit die unkomplizierteste ;-)

autoit.de Webutation