HttpHeader mitschneiden ;-)

  • Hi, ich möchte sowas wie das AddOn LiveHttpHeaders für FireFox mit AutoIt umsetzen nur fehlt mir da leider a weng der Weg

    Beispiel die url ; wenn ich mit

    Spoiler anzeigen
    [autoit]

    TCPStartup()
    HttpSetProxy(1)

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $HTTPUserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0"
    Global Const $HTTP_TCP_Port = 80
    Global Const $Limit_TimeOut = 6000
    Global Const $Host = "lads.myspace.com"
    Global $LAST_SOCKET = -1

    [/autoit] [autoit][/autoit] [autoit]

    Local $Page = "/music/musicplayer.swf?n=aHR0cDovL211c2ljLm15c3BhY2UuY29t&t=Cd7u/GApi+mrp1j2nvrrenJ9b42mHqExAgxQY3Tw793z9cM8faw4SrTFNXjfda3Rcnn2dK8nQlQbqJHIt/D42A==&u=LTE=&a=0&d=Mzk5MDkyMDheMTE5OTk2NzEwOA=="

    [/autoit] [autoit][/autoit] [autoit]

    $res = _HTTPGetRespones($Host, $Page)
    MsgBox(0,"",$res)
    $res = _HTTPGetSource($Host, $Page)
    MsgBox(0,"",$res)

    [/autoit] [autoit][/autoit] [autoit]

    Func _HTTPGetSource($Host, $Page)
    Local $Recv = '', $RcvBytes = 1024
    Local $Socket = _HTTPConnect($Host)
    _HTTPGet($Host, $Page, $Socket)
    If @error Then Return SetError(1, 0, '')

    While 1
    $CurrentLine = TCPRecv($Socket, $RcvBytes)
    If @error <> 0 Then ExitLoop
    If $CurrentLine <> '' Then $Recv &= $CurrentLine
    WEnd

    Return $Recv
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HTTPConnect($Host)
    Local $Name_To_IP = TCPNameToIP($Host)
    Local $Socket = TCPConnect($Name_To_IP, $HTTP_TCP_Port)

    If $Socket = -1 Then
    TCPCloseSocket($Socket)
    Return SetError(1, 0, "")
    EndIf

    $LAST_SOCKET = $Socket
    Return $Socket
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HTTPGetRespones($Host, $Page)
    Local $Socket = _HTTPConnect($Host)
    If @error Then Return SetError(1, 0, "")

    _HTTPHead($Host, $Page, $Socket)

    Local $Recv = "", $CurrentRecv
    While 1
    $CurrentRecv = TCPRecv($Socket, 16)
    If @error <> 0 Then ExitLoop
    If $CurrentRecv <> "" Then $Recv &= $CurrentRecv
    WEnd

    If StringInStr($Recv, "HTTP/1.1 410 Gone") Then Return SetError(2, 0, "")
    Return $Recv
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HTTPHead($Host, $Page, $Socket)
    Local $Command = "HEAD " & $Page & " HTTP/1.1" & @CRLF
    $Command &= "Host: " & $Host & @CRLF
    $Command &= "User-Agent: " & $HTTPUserAgent & @CRLF
    $Command &= "Connection: close" & @CRLF & @CRLF

    Local $BytesSent = TCPSend($Socket, $Command)
    If $BytesSent = 0 Then Return SetError(2, @error, 0)
    Return $BytesSent
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HTTPGet($Host, $Page, $Socket)
    Local $Command = "GET " & $Page & " HTTP/1.1" & @CRLF
    $Command &= "Host: " & $Host & @CRLF
    $Command &= "User-Agent: " & $HTTPUserAgent & @CRLF
    $Command &= "Connection: close" & @CRLF & @CRLF

    Local $BytesSent = TCPSend($Socket, $Command)
    If $BytesSent = 0 Then Return SetError(1, @error, 0)
    Return $BytesSent
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HTTPClose()
    If $LAST_SOCKET <> -1 Then TCPCloseSocket($LAST_SOCKET)
    TCPShutdown()
    Return 1
    EndFunc

    [/autoit]

    arbeite kann ich ja nur das zurückerhalten, was er am Anfang bekommt, aber nichts weiter
    gibt es da eine Möglichkeit dies irgendwie umzusetzen

    wer nicht weiß was LiveHttpHeaders ist unter dem Link nachschauen.


    edit:
    brauche es nicht mehr habe eine andere Möglichkeit gefunden mein Problem zu lösen

    Einmal editiert, zuletzt von leviathan (11. Januar 2008 um 13:31)

  • ja wenn ich jetzt Aktionen auf der Seite ausführe, die ich nicht per link klicken lassen kann, dann weiß ich nicht wie ich die auffangen lassen soll also zum Beispiel wenn ich den Play Button oben bei der angegebenen url klicke passiert ja was neues und es werden neue Daten ausgetauscht, die ich jedoch nicht auffangen kann