2016-08-22 4 views
0

Ich habe alle relevanten Beiträge auf Stack Overflow gelesen und habe nichts gefunden, das funktioniert, obwohl ich ein Anfänger in der Web-Anfrage/Antwort Programmierung Welt bin.C# Web Formular Einreichung mit WebClient Beispiel

Problem: Ich habe eine bestehende Anwendung, die Daten von einer Webseite erfasst. Einfache Webclient-Download-Seite (webclient.downloadstring (url)), die den HTML-Code analysiert und relevante Daten erfasst. Funktioniert super. Jetzt muss ich zusätzliche Daten von dieser Website abrufen, aber die Seite mit den Daten ist eine Liste mit Informationen, die über ASP.NET-JavaScript-Postbacks verfügen, bei denen es sich um Formularübermittlungen handelt.

<a id="ctl00_ContentPlaceHolder1_GridViewSort_ctl02_LinkButton1" class="ui-btn ui-mini center noprint" href="javascript:__doPostBack(&#39;ctl00$ContentPlaceHolder1$GridViewSort$ctl02$LinkButton1&#39;,&#39;&#39;)">More Info</a> 

ich alle relevanten Eingabewerte aus dem ursprünglichen Web-Anfrage-Formular Entwickler-Tools erfasst haben:

__EVENTARGUMENT: 
    __EVENTTARGET: ctl00%24ContentPlaceHolder1%24GridViewSort%24ctl03%24LinkButton1 
    __EVENTVALIDATION: tpO... 
    __VIEWSTATE: bI2vX... 
    __VIEWSTATEENCRYPTED: 
    __VIEWSTATEGENERATOR: 5037098B 
    ctl00%24ContentPlaceHolder1%24hfTicket: 0 
    ctl00%24ucheader2%24m_textBoxSearch: Search%E2%80%A6 

und haben versucht zu imitieren die Post zurück mit WebClient.UploadData (url, Daten), in dem Die Daten werden wie in anderen Beispielen in ASCII-Array von Byte [] konvertiert. Ich habe auch versucht, Header und Cookies zu erfassen, aber hier beginnen die Dinge auseinander zu fallen. Beispiele, die ich gefunden habe, funktionieren nicht für mich.

Hat jemand, der dies erreicht hat, bitte ein Code-Beispiel, mit dem ich anfangen kann. Ich habe auch WatIn heruntergeladen und ausprobiert. Dies kann als eine vorübergehende Lösung funktionieren, aber Browser-Verfügbarkeitsbeschränkungen erfordern viel zu viel Wartung und Intervention. Ich würde wirklich gerne herausfinden, wie man das mit einer .NET-Lösung macht.

Vielen Dank im Voraus.

+1

funktioniert nicht wie genau? Es würde helfen, wenn Sie einen Hinweis geben würden, welche Fehler/Probleme Ihnen begegnen – ADyson

+0

Meine Entschuldigung ... Wenn ich die uploaddata Anfrage sende, bekomme ich einfach die gleiche Seite zurück ... Ich denke, wonach ich gefragt habe, war eine Probe von etwas, das in einem bekannten Arbeitszustand ist. Ich habe mir die Pakete in fiddler und dev tools angesehen (chomme browser und edge) ... es gibt keinen Fehler, den ich sehen kann, aber die Antwort, nach der ich suche, erscheint nie ... Ich bin ratlos. Ich würde einen Rahmen kaufen, wenn einer existierte ... Ich nehme alle geeigneten Eingabeelemente auf, aber die Cookies und Header geben mir das Problem ... Jede Hilfe wäre willkommen. Ich sehe dies als ein MUSS vorwärts bewegen ... – stewbash

+0

An den Benutzer, der Selen empfohlen ... Ich habe WatIn und es funktioniert auch über einen Browser, aber ich brauche einen vollautomatischen Prozess ... die Browser-Anforderung wird das System verursachen Um eine Benutzeranmeldung und Anmeldeinformationen (Benutzerprofil) zu verlangen ... gibt es Problemumgehungen, aber ich möchte, dass dies so ausgeführt wird, wie es als automatisierter Prozess ... – stewbash

Antwort

0

Haben Sie darüber nachgedacht, Selenium zu verwenden, um diese Aktion über einen echten Browser zu automatisieren?

Hört sich wirklich schwierig an, dies durch manuelle Anfragen zu tun, wenn Sie wirklich diesen Weg gehen wollen, schlage ich vor, dass Sie Fiddler benutzen, um Ihre Anfrage so aussehen zu lassen wie die echte.

Verwandte Themen