Kleines Problem mit winhttp

    Kleines Problem mit winhttp

    Spoiler anzeigen
    '__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUJMzQ1Mzk1MTAxD2QWAmYPZBYCAgMPZBYGAgMPZBYCAgEPZBYCZg8WAh4HVmlzaWJsZWhkAgkPZBYCAgMPZBYOAgEPDxYCHgRUZXh0BRdSdXRzY2hpZ2UgQW5nZWxlZ2VuaGVpdGRkAgMPDxYCHwEFbEloLCB3YXMgd2FyIGRhcyBkZW5uPyBBaCwgSGlsZmUhIEVpbmUgUXVhbGxlLCBhYmVyLi4uIHdpbGwgc2llIG1pY2ggYW5ncmVpZmVuIG9kZXIgYnJhdWNodCBzaWUgc2VsYmVyIEhpbGZlP2RkAgUPZBYCAgEPZBYCAgEPDxYCHwEFBDI3MDBkZAIHD2QWAgIBD2QWAgIBDw8WAh8BBQI2MmRkAgkPDxYCHwEFCjEwIE1pbnV0ZW5kZAINDw8WAh8BBQMtMTBkZAIRDw8WAh8BBSpFeHA6IDE1MCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBHb2xkOiAyNDNkZAI%2FD2QWAgIBD2QWAgIBD2QWAmYPZBYGAgEPZBYCAgEPDxYCHwEFBzIxODY5NTlkZAIDD2QWAgIBDw8WBB8BBQQxOTA4HgtOYXZpZ2F0ZVVybAUOQnV5UmVsaWNzLmFzcHhkZAIFD2QWAgIBDw8WBh8BBQMyOTgfAgUpaHR0cDovL3RudC1nYW1lLmNvbS9EaWFtb25kLmFzcHg%2FaWQ9MTc2NjMeBlRhcmdldAUGX2JsYW5rZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgMFIWN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkQnV0dG9uMQUmY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRJbWFnZUJ1dHRvbjEFEmN0bDAwJEltYWdlQnV0dG9uMSDIsn9STvxyoN1WdNtt6Vd2YjvM2LG39OcBaLCS2Wj5&__VIEWSTATEGENERATOR=F7148990&__EVENTVALIDATION=%2FwEdAAQk%2F3v2G%2FlV3zz52jbI%2B2PnjDu35o5CUn6umW4JNpE1p%2BPKE9Bm3rmckTB22SlTRZAPjNmvFf3a46XIjHVLIZNCSEkfoU3p2tVepmXt0Hnvq%2FL626F9GGPLbghFk9X64u8%3D&ctl00%24ContentPlaceHolder1%24Button1.x=41&ctl00%24ContentPlaceHolder1%24Button1.y=14: undefined


    das ist ein post den ich sende ich versuche derzeit aus der seite die nötigen infos rauszubekommen ... ist es irgendwie möglich mit einem editor das ein wenig besser darzustellen damit ich weis wonach ich suche ? Ohne den ganzen klumpen nach jedem %24 einen zeilenumbruch zu machen ? Habe bei mehreren seiten sowas gesehen das die die post mit infos von der seiten verketten und abschicken ich würde das gerne aber ein wenig geordnet haben :)
    Notepad ++ und dann suchen und ersetzen, so kannst du %24 durch %24/n ersetzen wenn du regex an hast


    danke das hat soweit hin gehaun müsste aber noch das was ich mit dem regex ausgelesen haben mit einem StringReplace bearbeiten
    ich müsste aber 4 zeichen ersetzen in 3 strings die ich ausgelesen

    Quellcode

    1. %2F = /
    2. %2B = +
    3. %3D = =
    4. %24 = $

    gibt es eine alternative um mehrere zeichen aus einem string zu ersetzen ? man könnte zwar die 3 strings verbinden nur würde dadurch auch den der gesamte post verändert werden...
    habe schon an eine schleife gedacht die 4 mal durch läuft und die 3 strings abändert aber vl gibt es ja noch eine sauberere lösung ?
    autoit converter schreiben:
    du kannst das z.B. so machen, das du das mit clip get und Put machst und das dann mit regex oder der Replace funktion ersetzt und dann halt hast

    oder ich habe dich falsch verstanden, dann bitte ich um ein Beispiel

    AutoIt Quelltext

    1. $a = "__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUJMzQ1Mzk1MTAxD2QWAmYPZBYCAgMPZBYGAgMPZBYCAgEPZBYCZg8WAh4HVmlzaWJsZWhkAgkPZBYCAgMPZBYOAgEPDxYCHgRUZXh0BRdSdXRzY2hpZ2UgQW5nZWxlZ2VuaGVpdGRkAgMPDxYCHwEFbEloLCB3YXMgd2FyIGRhcyBkZW5uPyBBaCwgSGlsZmUhIEVpbmUgUXVhbGxlLCBhYmVyLi4uIHdpbGwgc2llIG1pY2ggYW5ncmVpZmVuIG9kZXIgYnJhdWNodCBzaWUgc2VsYmVyIEhpbGZlP2RkAgUPZBYCAgEPZBYCAgEPDxYCHwEFBDI3MDBkZAIHD2QWAgIBD2QWAgIBDw8WAh8BBQI2MmRkAgkPDxYCHwEFCjEwIE1pbnV0ZW5kZAINDw8WAh8BBQMtMTBkZAIRDw8WAh8BBSpFeHA6IDE1MCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBHb2xkOiAyNDNkZAI%2FD2QWAgIBD2QWAgIBD2QWAmYPZBYGAgEPZBYCAgEPDxYCHwEFBzIxODY5NTlkZAIDD2QWAgIBDw8WBB8BBQQxOTA4HgtOYXZpZ2F0ZVVybAUOQnV5UmVsaWNzLmFzcHhkZAIFD2QWAgIBDw8WBh8BBQMyOTgfAgUpaHR0cDovL3RudC1nYW1lLmNvbS9EaWFtb25kLmFzcHg%2FaWQ9MTc2NjMeBlRhcmdldAUGX2JsYW5rZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgMFIWN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkQnV0dG9uMQUmY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRJbWFnZUJ1dHRvbjEFEmN0bDAwJEltYWdlQnV0dG9uMSDIsn9STvxyoN1WdNtt6Vd2YjvM2LG39OcBaLCS2Wj5&__VIEWSTATEGENERATOR=F7148990&__EVENTVALIDATION=%2FwEdAAQk%2F3v2G%2FlV3zz52jbI%2B2PnjDu35o5CUn6umW4JNpE1p%2BPKE9Bm3rmckTB22SlTRZAPjNmvFf3a46XIjHVLIZNCSEkfoU3p2tVepmXt0Hnvq%2FL626F9GGPLbghFk9X64u8%3D&ctl00%24ContentPlaceHolder1%24Button1.x=41&ctl00%24ContentPlaceHolder1%24Button1.y=14: undefined"
    2. $a = Stringreplace($a, "%2f", "/")
    3. $a = Str......

    AutoIt Quelltext

    1. ;Man könnte es auch mit einem regex machen
    2. $String = _StringBetween($sPaket,'<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="','"')
    3. $String1 = _StringBetween($sPaket,'__VIEWSTATEGENERATOR" value="','" />')
    4. $String2 = _StringBetween($sPaket,'<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="','"')
    5. $sstring = $String[0]
    6. $sstring1 = $String1[0]
    7. $sstring2 = $String2[0]
    8. Dim $aSuchen[4] = ['/','+','=','$']
    9. Dim $aErsetzen[4] = ['%2F','%2B','%3D','%24']
    10. For $Durchgang = 0 to 3
    11. $sstring = StringReplace($sstring,$aSuchen[$Durchgang],$aErsetzen[$Durchgang])
    12. $sstring1 = StringReplace($sstring1,$aSuchen[$Durchgang],$aErsetzen[$Durchgang])
    13. $sstring2 = StringReplace($sstring2,$aSuchen[$Durchgang],$aErsetzen[$Durchgang])
    14. Next
    15. ;Das ist der geordnete post
    16. ConsoleWrite( _
    17. '__EVENTTARGET=&' &@CRLF & _
    18. '__EVENTARGUMENT=&' &@CRLF & _
    19. '__VIEWSTATE='&$sstring&'&' &@CRLF & _
    20. '__VIEWSTATEGENERATOR='&$sstring1&'&'& @CRLF & _
    21. '__EVENTVALIDATION='&$sstring2&'&' &@CRLF & _
    22. 'ctl00%24ContentPlaceHolder1%24tbLoginName=*****&'&@CRLF & _
    23. 'ctl00%24ContentPlaceHolder1%24tbLoginPass=*****'&@CRLF & _
    24. 'ctl00%24ContentPlaceHolder1%24Image3.x=38&'&@CRLF & _
    25. 'ctl00%24ContentPlaceHolder1%24Image3.y=11' &@CRLF)


    auf der webseite gibt es

    HTML-Quellcode

    1. <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAWa2qj7vvT7nC2vdqzglcfYW+iiVHu6re1z0emBo17hAx0vshXRimC4l1nWOY6xoLjTIRQI5HGCwMiKBEq7k5IUD4zZrxX92uOlyIx1SyGTQs1nWImu5Ygq0Qi21nDxbgdaZH8fo6DSILL7rL95mwv+" />

    ich brauche den wert doch wenn ich es absende wird das "+" am ende zum "%2B" darum muss ich ersetzen
    es gibt insgesamt 3 plätze auf der seite wo ich werte auslesen muss den dort enthalten string

    das mit der schleife gefällt mir nicht so ganz dachte man kann es einfacher gestalten da ich auf den folgenden seite auch wieder werte auslesen muss und die dann in einem post verpacken muss
    Such halt nach nen URLEncoder bzw Decoder ...
    hier ich war mal so frei :
    Spoiler anzeigen

    AutoIt Quelltext

    1. ​Func _URIEncode($sData)
    2. ; Prog@ndy
    3. Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"")
    4. Local $nChar
    5. $sData=""
    6. For $i = 1 To $aData[0]
    7. ; ConsoleWrite($aData[$i] & @CRLF)
    8. $nChar = Asc($aData[$i])
    9. Switch $nChar
    10. Case 45, 46, 48 To 57, 65 To 90, 95, 97 To 122, 126
    11. $sData &= $aData[$i]
    12. Case 32
    13. $sData &= "+"
    14. Case Else
    15. $sData &= "%" & Hex($nChar,2)
    16. EndSwitch
    17. Next
    18. Return $sData
    19. EndFunc
    20. Func _URIDecode($sData)
    21. ; Prog@ndy
    22. Local $aData = StringSplit(StringReplace($sData,"+"," ",0,1),"%")
    23. $sData = ""
    24. For $i = 2 To $aData[0]
    25. $aData[1] &= Chr(Dec(StringLeft($aData[$i],2))) & StringTrimLeft($aData[$i],2)
    26. Next
    27. Return BinaryToString(StringToBinary($aData[1],1),4)
    28. EndFunc


    autoitscript.com/forum/topic/95850-url-encoding/

    Wenn du die Daten absendest, brauchst du normaler weiße nichts machen, das sollte "automatisch" laufen