Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 10:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Exception bei Captcha-Eintragung

Discussion on Exception bei Captcha-Eintragung within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
exceble's Avatar
 
elite*gold: 0
The Black Market: 166/0/0
Join Date: Jul 2012
Posts: 2,327
Received Thanks: 604
Exclamation Exception bei Captcha-Eintragung

Nabend liebe Coder,

versuche mich gerade an ein kleines Mail-Creator-Tool mit C# aber habe Probleme mit dem Captcha.

Sobald ich versuche im Browser das Captcha einzutragen, kriege ich eine NullReference-Meldung. Aber ich verstehe nicht warum und bin nach längerem Googlen auch auf nichts hilfreiches gestoßen.

HTML:
Code:
<input type="text" class="feedback-panel-trigger" value="" name="captchaPanel:captcha-response:textfield" id="idd1" maxlength="50">
C#:
Code:
wB.Document.GetElementById("idd1").SetAttribute("value", "Test");
Bei allen anderen Elementen funktioniert es genau so, nur nicht beim Captcha. Würde mich freuen, wenn mir jemand dabei helfen kann.

Cheers
exceble is offline  
Old 04/16/2016, 14:43   #2

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
Join Date: Jun 2014
Posts: 2,663
Received Thanks: 541
Warum denn mit nem Webbrowser?

Willst du das Captcha in einer Picturebox abbilden und/oder den Text des Captchas in eine Textbox?
sexualising is offline  
Old 04/16/2016, 14:54   #3
 
exceble's Avatar
 
elite*gold: 0
The Black Market: 166/0/0
Join Date: Jul 2012
Posts: 2,327
Received Thanks: 604
Das Captcha in eine Picturebox zu laden war kein Problem.

Ich möchte das Registrierungsformular auf der Website ausfüllen lassen. Aber sobald ich irgendetwas in das Textfeld des Captchas schreiben möchte, kriege ich die exception. Aber bei allen anderen Textboxen funktioniert meine Methode.

Achja und den Webbrowser nutze ich, weil mir das am Trivialsten erschien.
exceble is offline  
Old 04/16/2016, 15:14   #4
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Sicher, dass die ID immer gleich ist beim erneuten Aufruf der Seite? Gibt genug Seiten, bei denen die IDs immer neu generiert werden. Um welche Seite handelt es sich denn?

Würde dir übrigens empfehlen, lieber HttpRequests zu benutzen, statt dem WebBrowser. Ist 1. um ein vielfaches schneller und 2. meiner Meinung nach viel simpler und du musst dich nicht mit solchen IDs rumschlagen.
Kraizy​ is offline  
Old 04/16/2016, 15:28   #5
 
exceble's Avatar
 
elite*gold: 0
The Black Market: 166/0/0
Join Date: Jul 2012
Posts: 2,327
Received Thanks: 604
Quote:
Originally Posted by Kraizy​ View Post
Sicher, dass die ID immer gleich ist beim erneuten Aufruf der Seite? Gibt genug Seiten, bei denen die IDs immer neu generiert werden. Um welche Seite handelt es sich denn?

Würde dir übrigens empfehlen, lieber HttpRequests zu benutzen, statt dem WebBrowser. Ist 1. um ein vielfaches schneller und 2. meiner Meinung nach viel simpler und du musst dich nicht mit solchen IDs rumschlagen.
Ja die IDs scheinen sich nach Aktualisierung zu ändern. Dennoch füllt mein Programm alle Felder aus (sollte er doch eigentlich garnicht mehr?). Bis auf das des Captchas.

Und ich habe bisher noch nie in C# mit Websites gearbeitet, deswegen danke für den Tipp. HttpRequests ist doch von System.Web vererbt oder nicht? Trotz hinzufügen in die using-Direktive kennt er HttpRequests nicht. Muss ich mir erst irgendein Verweis runterladen?
exceble is offline  
Old 04/16/2016, 15:29   #6
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Kraizy​ is offline  
Thanks
1 User
Old 04/16/2016, 17:24   #7
 
exceble's Avatar
 
elite*gold: 0
The Black Market: 166/0/0
Join Date: Jul 2012
Posts: 2,327
Received Thanks: 604
Quote:
Originally Posted by Kraizy​ View Post
Erstmal vielen Dank, das scheint mir auch eine effizientere Methode.

Ich hatte auch grundlegend PHP in der Schule, weswegen ich mit der POST-Methode was anfangen kann aber ich verstehe noch nicht ganz, wie ich das jetzt in C# abschicke bzw. realisiere.

Habe jetzt folgendes dazu gefunden:


Aber ich blick die Vererbungs- also "Legacy"-Methode, die er meint nicht wirklich, kann mir jemand kurz sagen was genau jetzt was macht?
exceble is offline  
Old 04/17/2016, 20:41   #8
 
exceble's Avatar
 
elite*gold: 0
The Black Market: 166/0/0
Join Date: Jul 2012
Posts: 2,327
Received Thanks: 604
^
exceble is offline  
Old 04/17/2016, 21:59   #9
 
h4zed's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 63
Received Thanks: 10
Ich würde dir empfehlen den WebClient mit seiner Methode UploadValues(POST) zu benutzen. Macht im Endeffekt genau das selbe wie ein HttpWebRequest, nur ist der WebClient meiner Meinung nach einfacher zu handhaben ist!

Hier etwas Pseudo Code als Denkanstoss:

Code:
//WebClient erstellen
dim wc as new webclient
wc.proxy = nothing
wc.encoding = utf8

//Optional Request Header bearbeiten/setzen
wc.headers.add("User-Agent", "firefox 42 whatever")

//Eine Collection mit den zu sendenden Daten(POST Values) erstellen
dim postColl as new namevaluecollection
postColl.add("VARIABLE", "WERT")
postColl.add("VARIABLE", "WERT")
postColl.add("VARIABLE", "WERT")
..............

//Nun die POST Values uploaden
dim respStr as string = utf8.getString(httpClient.uploadValues("URL", "POST", postColl)
Ähmm, ja sieht jz nicht besonders aus aber ich hoffe mal dieses "Snippet" kann dir helfen!
h4zed is offline  
Thanks
1 User
Old 04/19/2016, 21:14   #10


 
EqoTime's Avatar
 
elite*gold: 45
Join Date: Apr 2009
Posts: 896
Received Thanks: 399
Quote:
Originally Posted by exceble View Post
Ja die IDs scheinen sich nach Aktualisierung zu ändern. Dennoch füllt mein Programm alle Felder aus (sollte er doch eigentlich garnicht mehr?). Bis auf das des Captchas.

Und ich habe bisher noch nie in C# mit Websites gearbeitet, deswegen danke für den Tipp. HttpRequests ist doch von System.Web vererbt oder nicht? Trotz hinzufügen in die using-Direktive kennt er HttpRequests nicht. Muss ich mir erst irgendein Verweis runterladen?
Nur die ID vom Captcha wird sich höchstwahrscheinlich ändern, da es eine art "Botschutz" ist. Du kannst dir wenn du die Seite geladen hast den Quelltext in einen String speichern und mit regex oder substring (einfach mal googlen) die neue ID auslesen.

MfG
EqoTime is offline  
Old 04/19/2016, 22:13   #11
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Quote:
Originally Posted by exceble View Post
Erstmal vielen Dank, das scheint mir auch eine effizientere Methode.

Ich hatte auch grundlegend PHP in der Schule, weswegen ich mit der POST-Methode was anfangen kann aber ich verstehe noch nicht ganz, wie ich das jetzt in C# abschicke bzw. realisiere.

Habe jetzt folgendes dazu gefunden:


Aber ich blick die Vererbungs- also "Legacy"-Methode, die er meint nicht wirklich, kann mir jemand kurz sagen was genau jetzt was macht?
Ist eig relativ selbsterklärend, wenn man Zeile für Zeile durchgeht.
Es wird ein Http Request, in dem Fall ein POST Request -> request.Method = "POST"; an die Seite erstellt. postData ist ein String, welches die Daten enthält, die übertragen werden sollen. Bei einem (simplen) Login würde der Post z.B. so ausschauen: username=abc123&password=123abc. Der String wird anschließend als Bytearray in den Stream geschrieben (abgeschickt). Danach wird die response Variable erstellt, welche wie der Name schon sagt, die Antwort vom Server empfängt. Mit .ReadToEnd() wird dann quasi die Antwort als String ausgelesen (Seitenquelltext).

Wie du an die richtigen Daten kommst, die du als POST senden musst, bzw an welchen Link du das senden musst, findest du in zahlreichen Tutorials zum Thema HttpWebRequests, zum Teil auch hier auf Epvp. Da habe ich damals mal ein Tutorial geschrieben, zwar in VB.NET aber sollte kein allzugroßer Unterschied zu C# sein. Vllt hilft dieser dir ja weiter.
Kraizy​ is offline  
Thanks
1 User
Old 04/27/2016, 21:41   #12
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
Bei Web.de oder gmx.net kannst du Webbrowser vergessen.
#Saiirex is offline  
Reply


Similar Threads Similar Threads
[B] wr-c vip GUID eintragung [S] e*Gold
06/09/2014 - WarRock Trading - 3 Replies
^topic möchte nur bisschen e*Gold dafür, brauch den vip zur zeit nicht deswegen.. 50-100 e*Gold müssen schon drin sein.
[Buying] Suche VIP Eintragung!!
04/07/2013 - WarRock Trading - 3 Replies
Hey Leute wer kann mir VIP Guid Eintragen Für ein Paar Stunden.. Biete 11E-Gold Sirosix VIP...
[S] Sirosix VIP Guid eintragung [B] 7 E*G
08/13/2012 - WarRock Trading - 2 Replies
topci.. brauche schnell
the exception unknown software exception
02/04/2012 - Archlord - 4 Replies
Hello all!When i start the game i select europe and after says the exception unknown software exception click ok to terminate the program.PLease help me guys to solve this problem1Have a nice day



All times are GMT +1. The time now is 10:45.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.