PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VB.Net Webbrowser "Post" senden



Katsumix3
22.07.2010, 21:26
Hallo erstmal :D

Undzwar hab ich mir versucht in VB.Net einen Hitfaker zu coden.
Funktioniert alles zusammen wunderbar nur hab ich jetzt ein Problem.

Ich hab auf einer Seite ein Enterbutton, sobald man diesen Drückt
geht er zurück zur Index und sendet einen securehash der sich
immer ändert.

Der Body schaut so aus:

<body>
<div id="gateway">
<a href="./" id="vote"><img src="img/Vote.png" alt="Vote / Enter" /></a>
</div>

<form id="voteform" action="vote/wordpress/" method="post">
<input type="hidden" name="secuhash" value="c21e68543a4f3183b06e90ed1758468e" />
</form>
</body>
So, nun dachte ich das ich es mit

"WebBrowser1.Document.GetElementById("vote").InvokeMember("click")"
Clicken kan, aber das funktioniert schonmal nicht

Also dachte ich mir das ich dem WebBrowser einfach die seite index aufrufe
aber dazu noch die "Post" daten aus der enterpage dazu nehme.

Was meint ihr dazu bzw könntet ihr mir dazu helfen x)

LG

Toastbrot
22.07.2010, 22:01
Wenn du einfach eine Seite mit POST Parametern aufrufen willst, dann beschäftige dich mal mit HTTPWebRequests.

Hier ein Snippet für dich, den du anpassen kannst.


Private Cookie As CookieContainer = Nothing
Private Function WebReq(ByVal URL As String, ByVal Post As String) As String
Dim Request As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)
Request.CookieContainer = Cookie
Request.Method = "POST"
Request.ContentType = "application/x-www-form-urlencoded"
Request.Timeout = 12000
Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
Request.ContentLength = byteArray.Length
Dim DataStream As Stream = Request.GetRequestStream()
DataStream.Write(byteArray, 0, byteArray.Length)
DataStream.Close()

Dim Response As HttpWebResponse = Request.GetResponse()
DataStream = Response.GetResponseStream()
Dim reader As New StreamReader(DataStream, System.Text.Encoding.UTF8)
Dim ServerResponse As String = reader.ReadToEnd()
reader.Close()
DataStream.Close()
Response.Close()
Return ServerResponse
End Function

Bevor ichs vergesse: Verwendete Namespaces: System.IO, System.Net, System.Text

Lighti
22.07.2010, 22:15
Du könntest es auch mit einer collection machen und sie dann über webclient absenden aber puh müsste man sich mit beschäftigen wenn man den source will, ich weiß es gerade leider nicht mehr

Katsumix3
23.07.2010, 00:12
Also komm ich um den HTTPWebrequest nicht rum?

Hatte ja schon alles fertig aber ich hab mal geschaut und habs doch noch hinbekommen.
Werde morqen wen ich zuhause bin den Teil posten :D
(Bin grad unterweqs xD)

LG und THX an euch Zwei