Hallo Zusammen,
ich benötige eure Unterstützung bei HttpWebRequest.
Ich bin gerade dabei einen kleinen Bot für das Browsergame Travian zu schreiben welches ich auf einem Privatserver nutzen möchte.
Einige Funktionen klappen bisher wunderbar. Doch nun möchte ich "Truppen ausbilden" und das funktioniert plötzlich nicht.
Zur Veranschaulichung hier der POST Ausschnitt:
HTML-Code:
http://tx1024.atergatis.com/build.php
Host: tx1024.atergatis.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://tx1024.atergatis.com/build.php?id=32
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
Connection: keep-alive
Cookie: _ga=GA1.2.635458686.1547908770; t4level=1; PHPSESSID=l4a8ce5eelku8lovvqsjghokl5; tt_lang=en; tt_mlang=en; highlightsToggle=false; c_name=0|Win32|Windows%20NT%2010.0|1920px*1080px|amd64|-%2C-%2C-; chatmaninwindowtab=0; WMBlueprints=%5B%5
Upgrade-Insecure-Requests: 1
id=32&ft=t1&t1=0&t2=100&t3=0&s1=ok
POST: HTTP/1.1 302 Moved Temporarily
Date: Wed, 29 May 2019 22:44:11 GMT
Server: Apache/2.2.15
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Set-Cookie: tt_lang=en; expires=Wed, 05-Jun-2019 22:44:11 GMT
tt_mlang=en; expires=Wed, 05-Jun-2019 22:44:11 GMT
Location: build.php?id=32
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 20
Keep-Alive: timeout=5, max=193
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Und das hier mein VB.Net Code
Code:
With New Http
Dim html As String = String.Empty
Dim username As String = txtUsername.Text
Dim password As String = txtPassword.Text
html = .GetResponse("http://tx1024.atergatis.com/login.php", "ft=a4&user=" & username & "&pw=" & password & "&s1=Login&w=&login=1394973455")
html = .GetResponse("http://tx1024.atergatis.com/dorf2.php?newdid=33013")
html = .GetResponse("http://tx1024.atergatis.com/build.php?", "id=32&ft=t1&t1=0&t2=100&t3=0&s1=ok")
MsgBox("erledigt")
End With
Ich nutze folgende Klasse um HttpWebRequest auszuführen:
Code:
Public Class Http Dim cookieCon As New CookieContainer
Dim request As HttpWebRequest
Dim response As HttpWebResponse
Public Function GetResponse(ByVal url As String) As String
request = CType(HttpWebRequest.Create(url), HttpWebRequest)
request.CookieContainer = cookieCon
response = CType(request.GetResponse(), HttpWebResponse)
Return New StreamReader(response.GetResponseStream()).ReadToEnd()
End Function
Public Function GetResponse(ByVal url As String, ByVal post As String) As String
request = CType(HttpWebRequest.Create(url), HttpWebRequest)
request.Method = "POST"
request.CookieContainer = cookieCon
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0"
request.ContentType = "application/x-www-form-urlencoded"
Dim byteArr() As Byte = Encoding.Default.GetBytes(post)
request.ContentLength = byteArr.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArr, 0, byteArr.Length)
response = CType(request.GetResponse(), HttpWebResponse)
Return New StreamReader(response.GetResponseStream()).ReadToEnd()
End Function
End Class
Wenn ich nun die Button ausführe erhalte ich die MsgBox = "erledigt" jedoch werden keine Truppen ausgebildet.
Ich weiss wirklich nicht was ich falsch mache und hoffe auf eure Unterstützung.
Vielen Dank im Vorraus.