Ergebnis 1 bis 20 von 21
-
S!lver Gast
Hallo liebe Community,
ich habe heute den ganzen Tag damit verbracht, wie man den Quelltext in einer Textbox speichern kann, doch bisher immernoch nichts gefunden.
Bei dem .NET Framework konnte man das ja ganz einfach über die "Webbrowser1.documenttext" Funktion machen, leider geht das unter .NET Compact Framework nicht, da diese Funktion ja nur WriteOnly ist.
Kennt ihr vielleicht eine Funktion wie ich sonst noch den Quelltext erhalte? Ich programmiere unter Visual Basic 2008.
LG S!lver
-
entwickelt Apps
- 26.10.2008, 21:33
- #2
Ist zwar C#...
Code:HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.news.ch"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = newStreamReader(response.GetResponseStream()); string result = reader.ReadToEnd(); response.Close();
-
Unregistriert Gast
Ja, sowas ähnliches habe ich schon:
Code:Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create("http://welt6.travian.de/dorf1.php") Dim myResponse As System.Net.WebResponse = myRequest.GetResponse() Dim myStream As System.IO.Stream = myResponse.GetResponseStream() Dim myReader As New System.IO.StreamReader(myStream) TextBox1.Text = myReader.ReadToEnd myReader.Close()
Ich habe zwar die URL eingegeben, die kommt sobald ich mich eingeloggt habe, jedoch bekomme ich immer nur den Quelltext der Seite, auf der ich das Passwort eingeben muss.
Gibt es nicht ne Möglichkeit den Quelltext direkt aus dem Webbrowser auszulesen?
-
entwickelt Apps
- 26.10.2008, 21:53
- #4
Vielleicht noch Folgendes setzen?
Code:request.Credentials = newNetworkCredential("userName", "password"); request.PreAuthenticate = true;
-
Unregistriert Gast
Sollte ich das dann vor oder nach der Zeile
Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create("http://welt6.travian.de/dorf1.php")
schreiben?
Naja, also diese Methode hört sich soweit erstmal garnicht schlecht an, vielleicht klappt es damit, aber weisst du vielleicht auch wie ich das in VB realisieren könnte? Ich kenne mich mit dem Befehl leider nicht aus.
-
entwickelt Apps
- 26.10.2008, 22:18
- #6
nach dem Create
myRequest.Credentials = New NetworkCredential("userName", password")
P.S.: Versuch's mal, bin mir aber nicht sicher, ob das wirklich so einfach gehen wird. Vielleicht müsste man die myRequest.Method = "POST" setzen.
-
Unregistriert Gast
Okay, also momentan siehts so aus:
Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create("http://welt6.travian.de/dorf1.php")
myRequest.Credentials = New System.Net.NetworkCredential("user", "password")
Dim myResponse As System.Net.WebResponse = myRequest.GetResponse()
Dim myStream As System.IO.Stream = myResponse.GetResponseStream()
Dim myReader As New System.IO.StreamReader(myStream)
TextBox1.Text = myReader.ReadToEnd
myReader.Close()
Soweit so gut, das Programm läuft auch und zeigt keine Fehler. Das Problem ist nur leider immernoch das selbe. Bekomme nur den Quelltext der Anmeldeseite angezeigt.
-
entwickelt Apps
- 26.10.2008, 22:54
- #8
Nun, selber habe ich das noch nie ausprobiert...
Hier die msdn Seite über Credentials (mit Beispiel)
http://msdn.microsoft.com/en-us/libr...edentials.aspx
Nun, wenn die Method = "POST" gesetzt ist, kann man irgendwelche Info dem Request mitgeben.
http://msdn.microsoft.com/en-us/libr...ntenttype.aspx
(dann muss man noch ContentType und ContentLenth setzen, siehe Beispiel)
Vielleicht hilft das weiter!
-
S!lver Gast
Ok, vielen Dank, vielleicht hilft mir das ja weiter.
Werde mir das dann morgen mal anschauen und ausprobieren. Muss halt in 5 Stunden wieder aufstehen und zur Arbeit gehn
Habe auch noch jemanden gefunden der das Selbe Problem hat wie ich:
http://entwickler-forum.de/showthread.php?t=45146
Vielen Dank erstmal für deine Hilfe. Vielleicht klappt es ja dann morgen.
-
S!lver Gast
Also ich habs mal damit probiert, bringt aber leider auch nicht den gewünschten Erfolg, oder ich habe mich einfach zu dämlich/unerfahren angestellt!?!
Das habe ich probiert:
Dim request As HttpWebRequest = CType(WebRequest.Create(args(0)), HttpWebRequest)
request.MaximumAutomaticRedirections = 4
request.Credentials = CredentialCache.DefaultCredentials
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Console.WriteLine("Content length is {0}", response.ContentLength)
Console.WriteLine("Content type is {0}", response.ContentType)
Dim receiveStream As Stream = response.GetResponseStream()
Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)
TextBox1.Text = readStream.ReadToEnd()
response.Close()
readStream.Close()
Ein Problem zeigt er beim Debuggen wegen dem "args" in der ersten Code-Zeile an. Woran kann das liegen, und was sollte ich da eintragen? Ist diese Funktion überhaupt für mein Projekt realisierbar oder komme ich damit auch nicht weiter?
LG S!lver
-
S!lver Gast
Gebe es denn nicht vielleicht auch die Möglichkeit den Benutzername und das Passwort auch direkt über die URL zu übergeben?
Also z.B. so:
Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create("http://welt6.travian.de/dorf1.php?name=username&pwd=passwort")
Dim myResponse As System.Net.WebResponse = myRequest.GetResponse()
Dim myStream As System.IO.Stream = myResponse.GetResponseStream()
Dim myReader As New System.IO.StreamReader(myStream)
TextBox1.Text = myReader.ReadToEnd
myReader.Close()
Also mit der URL "http://welt6.travian.de/dorf1.php?name=username&pwd=passwort" kann ich meine Daten an die Login-Seite weitergeben. Leider funktioniert das momentan nur mit dem Benutzernamen, aber anscheinend scheint die Variable "pwd" nicht für das Passwort-Feld zu funktionieren. Welche Variable könnte ich stattdessen verwenden?
Würde das denn auch funktionieren sich mit dieser Methode dort anzumelden?
-
entwickelt Apps
- 27.10.2008, 20:48
- #12
Nun, vielleicht hilft Dir das hier weiter:
http://forums.asp.net/p/1197857/2076276.aspx
So kann man die Logindaten an die Seite schicken.
(args(0) ist die url, da in diesem Beispiel das Ganze in der Methode main(... args...) aufgerufen wird)
-
S!lver Gast
Sry, aber das klappt so nicht.
Leider kennt die .NET Compact Framework die Hälfte der angegebenen Befehle nicht.
Aber es muss doch irgend eine andere Möglichkeit geben an dieser Login-Seite vorbeizukommen!?
Weiss denn niemand wie ich den Quelltext eines Webbrowser-Elements auslesen kann? Also einfach nur eine andere Funktion für:
Textbox1.Text = Webbrowser1.DocumentText
Das würde mir soweit erstmal einen riesigen Aufwand ersparen. Am besten natürlich noch in VB geschrieben, aber vielleicht kann ich auch andere Sprachen "umwandeln".
LG S!lver
-
- 29.10.2008, 08:33
- #14
hast du denn die namespaces "geused"?
also using System.Net etc?
VB zu c# und zurück: http://www.developerfusion.com/tools.../vb-to-csharp/
und übrigens:
http://msdn.microsoft.com/en-us/libr...umenttext.aspx
Du kannst die Eigenschaft Webbrowser.DocumentText setzen und lesen, also müsste doch
Textbox1.Text = Webbrowser1.DocumentText klappen.
-
S!lver Gast
Ja, die System, System.Net und System.IO habe ich geused.
Die Seite mit dem Code-Umwandler is ne super Seite, werde mir die speichern. Habe auch mal den zuletzt angegebenen C# Code umgewandelt. Das Ergebnis ist aber weniger ernüchternd, denn genauso habe ich das auch umgeschrieben.
Ja, die MSDN Seite die du verlinkt hast, ist leider nur für das .NET Framework, nicht aber für das .NET Compact Framework. In der VB Beschreibung über DocumentText steht zwar als Infotext "Gets or sets the HTML contents of the page displayed in the WebBrowser control.", jedoch wenn ich "TextBox1.Text = Webbrowser1.DocumentText" schreibe, zeigt er in der Konsole immer an das die Variable DocumentText nur WriteOnly ist. Hatte auch mal was gelesen das das anscheindend nen Bug von Microsoft ist, weiss aber nich so genau ob das auch stimmt.
Irgendwie funktioniert das nicht in der Compact Version. Oder kann ich die Variable irgendwie auch als ReadOnly setzen?
-
S!lver Gast
So, ich habe nun nochmal den C# Code in den Konverter kopiert und das umgewandelte in mein VS 2008 kopiert.
Also bis auf die Befehle:
request.MaximumResponseHeadersLength = 4
und
response.Write(strresponse)
scheint nun alles zu funktionieren, jedoch bekomme ich immernoch nur den Quelltext der Login-Seite angezeigt. Zur Anmeldung habe ich diesen Code eingefügt:
Dim postData As String = "name='mein_benutzername'&password='mein_passwort"
ich glaube die Webseite kann mit der Variable 'password' nichts anfangen. Mit 'name' habe ich es schon probiert und es klappt, aber die andere funzt nicht.
Welche anderen Variablen-Bezeichnungen könnte ich angeben, oder wie kann ich die benötigte Variable für das Passwort auslesen?
Habe schon folgende Variablen probiert: passw, pass, pwd, pw, pwt, passwort, password
Mehr fallen wir soweit nicht ein. Euch vielleicht?
-
- 29.10.2008, 22:10
- #17
Schau halt im quellcode der seite nach
Das steht ja im
-
S!lver Gast
Da folgt das nächste Problem. Dem Quelltext der Login-Seite sind leider keine Informationen über die Variablen zu entlocken.
Es gibt nur 6 Input-Tags im Quelltext:
<input type="hidden" name="w" value="">
<input type="hidden" name="login" value="1225380516">
<input class="fm fm110" type="text" name="e6be698" value="" maxlength="15"> <span class="e f7"></span>
<input class="fm fm110" type="password" name="e2bf6e0" value="" maxlength="20"> <span class="e f7"></span>
<input type="image" value="login" border="0" name="s1" src="img/de/b/l1.gif" width="80" height="20" onMousedown="btm1('s1','','img/de/b/l2.gif',1)" onMouseover="btm1('s1','','img/de/b/l3.gif',1)" onMouseUp="btm0()" onMouseOut="btm0()" onClick="xy()">
</input></p></form></div></div></div><div id="lright1">
Habe schon alles was hinter 'name=' steht versucht, doch es funktioniert mit diesen Variablen leider nicht, das Passwort in die Textbox zu bekommen.
-
- 01.11.2008, 20:02
- #19
na, doch. die variablen heissen e2bf6e0 für's Passwort und das login scheint mit login=1225380516 fix zu sein. eventuell wird die seite komplett dynamisch erstellt?
aber das ist nun wirklich off topic
-
S!lver Gast
Sorry, aber so einfach ist das halt leider nicht. Wie gesagt, habe schon alles nach 'name=' ausprobiert, auch 'e2bf6e0', doch es funktioniert nicht.
Außerdem ändert sich die Variable für Passwort und Benutzername , also das was hinter 'name=' steht, ständig, d.h. wenn es jetzt funktionieren würde, gäbe es später wieder Probleme.
Probiert's doch aus, es geht leider nicht: http://welt3.travian.de
Das ist die Login-Seite. Also mit 'name=Benutzername' funktionierts, nur leider mit dem Passwort nicht...
LS S!lver
Ähnliche Themen
-
Programm einer Taste zuweisen
Von Unregistriert im Forum HTC TyTN IIAntworten: 1Letzter Beitrag: 26.11.2007, 11:24 -
Wiederherstellen einer gelöschent Datei
Von duney im Forum Forum andere Hersteller (PPC)Antworten: 2Letzter Beitrag: 05.01.2006, 07:14 -
Verwenden einer SD Card
Von Ernie56 im Forum PlaudereckeAntworten: 2Letzter Beitrag: 06.07.2004, 08:01 -
Betreiben einer HD via Bluetooth
Von dm im Forum PlaudereckeAntworten: 8Letzter Beitrag: 08.02.2004, 18:53 -
GPRS Datenmenge pro Webseite? Erfahrungswerte?
Von dan71 im Forum PlaudereckeAntworten: 9Letzter Beitrag: 19.12.2002, 18:36
Pixel 10 Serie mit Problemen:...