Frage : Webrequest PFOSTEN

Ich habe eine Spitze eines Probleme mit dem Schicken der PFOSTEN-Mitteilungen zu webpages.
I wünsche ein Programm, das zum Redigieren der Pfosten auf einem vBulletin forum.

I haben bereits ein Stück des Codes fähig ist, der Webrequest verwendet, um das CookieContainer anzumelden und zu speichern. So kann ich an eine neue Pfostenseite gelangen, während es ohne Probleme angemeldet wird. Das Problem ist ich kann keine Daten in den area per informazioni bekannt geben. Oder möglicherweise kann ich, aber es zeigt es nicht, dass in der Antwort, welches ich auf ein web browser object.

What einstelle, ich falsch tuend bin? Ist hier mein Code, nicht mit einem Forum, aber gerade EE stationieren, die nicht auch nicht bearbeitet. Ich versuche, „Prüfung“ zum searchbox in der äußersten Rechte bekanntzugeben, ist der Name „gsearchBox“ und Identifikation ist „q“. Muss ich den Namen oder die Identifikation des Elements verwenden?

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
 // verursachen einen Antrag using ein URL, das einen Pfosten empfangen kann.
            var-Antrag = (HttpWebRequest) WebRequest.Create („http://www.experts-exchange.com/ ");
            request.UserAgent =
    „Benutzer-Mittel: Mozilla/5.0 (Windows; U; Windows NT 5.1; De; rv: 1.8.1.1) Gecko/20061204 Firefox/2.0.0.1“;

            // stellte das Methodeneigentum des Antrags BEKANNTZUGEBEN ein.
            Antrag. Methode = „PFOSTEN“;

            // verursachen PFOSTEN-Daten und wandeln sie in eine Bytereihe um.
            Schnur postData = „gsearchBox=testing“;               // <------ NAME DES SEARCHBOX
            //string postData = „q=testing2“;                       <------ IDENTIFIKATION DES SEARCHBOX

            var encoding2 = neues ASCIIEncoding ();
            Byte [] byteArray = encoding2.GetBytes (postData);

            ((HttpWebRequest) Antrag) .CookieContainer = cookiecontain;
            // stellte das ContentType Eigentum des WebRequest ein.
            request.ContentType = „application/x-www-form-urlencoded“;
            // stellte das ContentLength Eigentum des WebRequest ein.
            request.ContentLength = byteArray.Length;
            request.KeepAlive = richten aus;
            // erhalten den Antragstrom.
            Strom dataStream = request.GetRequestStream ();
            // schreiben die Daten zum Antragstrom.
            dataStream.Write (byteArray, 0, byteArray.Length);
            //-Abschluss der Stromgegenstand.
            dataStream.Close ();
            // erhalten die Antwort.
            WebResponse Antwort = request.GetResponse ();
            //-Anzeige der Status.
            Console.WriteLine (((HttpWebResponse) Antwort) .StatusDescription);
            // erhalten den Strom, der den Inhalt enthält, der durch den Bediener zurückgebracht wird.
            dataStream = response.GetResponseStream ();
            // öffnen den Strom using ein StreamReader für einfachen Zugang.
            StreamReader reader2 = neues StreamReader (dataStream);
            // las den Inhalt.
            Schnur responseFromServer2 = reader2.ReadToEnd ();
            //-Anzeige der Inhalt.
            webBrowser1.DocumentText = responseFromServer2;
            // räumen die Ströme auf.
            Leser. Abschluss ();
            dataStream.Close ();
            Antwort. Abschluss ();




Secondary Frage, wie kann ich einen Unterbreitungknopf simulieren? Nachdem ich beendete, den Pfosten zu redigieren, die Änderungen einreichen?
Thanks im Voraus.

Antwort : Webrequest PFOSTEN

Es muss der Name des Suchkastens sein.

Wenn Sie das HTML auf EE überprüfen, gibt es ein Bündel anderer versteckter Felder, die zusammen mit dem Text gesendet, der vom Benutzer geschrieben. Sie wissen nicht, ob irgendwelche von denen durch den Bediener überprüft und ein Fehlen denen den Bediener veranlassen kann, Störung zurückzubringen oder zur Seite gerade still zurückzugehen. Wer weiß…

Sie sollten versuchen, indem Sie alle Formfelder in Ihren Suchdaten hinzufügen. Eine schnelle Weise ist, WireShark zu beginnen und eine Beispielsuche gefangenzunehmen und die Daten zu überprüfen, die zum Bediener geschickt. Den Datenteil einfach kopieren und ihn in Ihrem Programm kleben, um eine schnelle Überprüfung zu tun.

Was die Unterbreitung anbetrifft, es gibt wirklich nichts zu tun. Die Formdaten zum URL einfach bekannt geben spezifiziert im „Tätigkeits“ Attribut der Form. Wenn es keine gerade Pfosten zur aktuellen Seite (PostBack) gibt. Auch wie Sie bekannt geben, abhängen die Daten (das Format) nach dem „kodierungs“ Attribut der Form. Wenn es WWW-URL-verschlüsselt, ist es wie eine Fragenschnur mit URL verschlüsselten Schlüsseln und Werten.

Wenn es Mehrfach-/Formdaten ist, dann, die eine vollständige andere Geschichte ist. Ich glaube für Ihren Fall, es werde meistens die WWW-URL-verschlüsselte Art sein.

Hoffen, dass Hilfen…

Weitere Lösungen  
 
programming4us programming4us