NavanBethrax
04.10.2010, 20:45
Also ich habe probleme bei einem Bot für das Browsergame Tenoth ... Tanoth Online (http://s1.tanoth.de/)
Also den Login bekomm ich schonmal per POST befhel hin doch dannn kommt das Problem ich will das er immer auf den Button Kämpfen und dann auf Start Klickt . das Problem ist jetzt ber der Postbefehl der bei dem Button Kämpfen kommt und zwar :
POST / HTTP/1.1
Host: s4.tanoth.de:11004
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729; .NET4.0E)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: SID=71c63b670bc3931fd1944c83204cb9a1
Referer: http://s4.tanoth.de/webroot/client_3682/Game.swf
Content-type: text/xml
Content-length: 179
<methodCall>
<methodName>MiniUpdate</methodName>
<params>
<param>
<value>
<string>ua11t2bimx8k</string>
</value>
</param>
</params>
</methodCall>
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 463
Content-Type: text/xml
Date: Sun, 03 Oct 2010 12:34:29 GMT
Server: libiqxmlrpc 0.8.9
Mein Code bis jetzt der auch für den Login klappt ist :
Imports System.IO, System.Net, System.Text
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Request As HttpWebRequest = CType(WebRequest.Create("http://s4.tanoth.de/user/login"), HttpWebRequest)
Request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Request.KeepAlive = True
Request.Method = "GET"
Request.Timeout = 10000
Request.UserAgent = "Mozilla/5.0(Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.5 (.NET CLR 4.0.20506)"
Request.Referer = "http://s4.tanoth.de/user/login"
Request.ContentType = "application/x-www-form-urlencoded"
Request.CookieContainer = New CookieContainer()
Dim User = TextBox1.Text, Pwd = TextBox2.Text, Server = "4"
Request.Method = "POST"
Request.ContentType = "application/x-www-form-urlencoded"
Request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Dim Post As String = "server=" & Server & "&username=" & User & "&userpass=" & Pwd
' das wird gesendet
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)
Dim ServerResponse As String = reader.ReadToEnd()
reader.Close()
DataStream.Close()
Response.Close()
If InStr(ServerResponse, "http://s4.tanoth.de/css/client.css") Then
Label3.Text = "Logged In"
Label3.ForeColor = Color.Green
Else
Label3.Text = "Logged Out"
Label3.ForeColor = Color.Red
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label3.ForeColor = Color.Red
End Sub
End Class
So wie verarbeite ich bitte diesen POST Befehl kann mir da wer helfen ?
Also den Login bekomm ich schonmal per POST befhel hin doch dannn kommt das Problem ich will das er immer auf den Button Kämpfen und dann auf Start Klickt . das Problem ist jetzt ber der Postbefehl der bei dem Button Kämpfen kommt und zwar :
POST / HTTP/1.1
Host: s4.tanoth.de:11004
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729; .NET4.0E)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: SID=71c63b670bc3931fd1944c83204cb9a1
Referer: http://s4.tanoth.de/webroot/client_3682/Game.swf
Content-type: text/xml
Content-length: 179
<methodCall>
<methodName>MiniUpdate</methodName>
<params>
<param>
<value>
<string>ua11t2bimx8k</string>
</value>
</param>
</params>
</methodCall>
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 463
Content-Type: text/xml
Date: Sun, 03 Oct 2010 12:34:29 GMT
Server: libiqxmlrpc 0.8.9
Mein Code bis jetzt der auch für den Login klappt ist :
Imports System.IO, System.Net, System.Text
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Request As HttpWebRequest = CType(WebRequest.Create("http://s4.tanoth.de/user/login"), HttpWebRequest)
Request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Request.KeepAlive = True
Request.Method = "GET"
Request.Timeout = 10000
Request.UserAgent = "Mozilla/5.0(Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.5 (.NET CLR 4.0.20506)"
Request.Referer = "http://s4.tanoth.de/user/login"
Request.ContentType = "application/x-www-form-urlencoded"
Request.CookieContainer = New CookieContainer()
Dim User = TextBox1.Text, Pwd = TextBox2.Text, Server = "4"
Request.Method = "POST"
Request.ContentType = "application/x-www-form-urlencoded"
Request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Dim Post As String = "server=" & Server & "&username=" & User & "&userpass=" & Pwd
' das wird gesendet
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)
Dim ServerResponse As String = reader.ReadToEnd()
reader.Close()
DataStream.Close()
Response.Close()
If InStr(ServerResponse, "http://s4.tanoth.de/css/client.css") Then
Label3.Text = "Logged In"
Label3.ForeColor = Color.Green
Else
Label3.Text = "Logged Out"
Label3.ForeColor = Color.Red
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label3.ForeColor = Color.Red
End Sub
End Class
So wie verarbeite ich bitte diesen POST Befehl kann mir da wer helfen ?