Vraag : De POST van Webrequest

Ik heb een beetje van een probleem met het verzenden van POSTberichten naar webpages.
I wil een programma dat posten op een vBulletin forum.

I kan uitgeven heeft reeds een stuk van code dat Webrequest aan login gebruikt en opslaat CookieContainer. Zo kan ik aan een nieuwe postpagina krijgen terwijl het programma geopend zonder problemen. Het probleem is ik kan geen gegevens in textboxes posten. Of misschien kan toont ik maar het het niet in de reactie die ik aan een Webbrowser object.

What ben verkeerd doen van I plaatste? Hier is mijn code, niet met een forum maar enkel de plaats van EE die niet ook niet werkt. Ik probeer om „het testen“ aan searchbox in het hoogste recht te posten, is de naam „gsearchBox“ en identiteitskaart is „q“. Moet ik de naam of identiteitskaart van het element gebruiken?

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:
36:
37:
38:
39:
40:
41:
42:
43:
 // leiden tot een verzoek gebruikend een URL die een post kan ontvangen.
            var verzoek = (HttpWebRequest) WebRequest.Create („http://www.experts-exchange.com/“);
            request.UserAgent =
    „Gebruiker-agent: Mozilla/5.0 (Vensters; U; Vensters NT 5.1; DE; rv: 1.8.1.1) Gecko/20061204 Firefox/2.0.0.1“;

            // plaatst het bezit van de Methode van het verzoek TE POSTEN.
            verzoek. Methode = „POST“;

            // leidt tot POSTgegevens en zet het in een byteserie om.
            koord postData = „gsearchBox=testing“;               // < NAAM VAN SEARCHBOX
            //string postData = „q=testing2“;                       < IDENTITEITSKAART VAN SEARCHBOX

            var encoding2 = nieuwe ASCIIEncoding ();
            byteArray byte [] = encoding2.GetBytes (postData);

            ((HttpWebRequest) verzoek) .CookieContainer = cookiecontain;
            // plaatst het bezit ContentType van WebRequest.
            request.ContentType = „application/x-www-vorm-urlencoded“;
            // plaatst het bezit ContentLength van WebRequest.
            request.ContentLength = byteArray.Length;
            request.KeepAlive = waar;
            // krijgt de verzoekstroom.
            Stroom dataStream = request.GetRequestStream ();
            // schrijft de gegevens aan de verzoekstroom.
            byteArray dataStream.Write (, 0, byteArray.Length);
            // sluit het voorwerp van de Stroom.
            dataStream.Close ();
            // krijgt de reactie.
            De reactie van WebResponse = request.GetResponse ();
            // Vertoning de status.
            Console.WriteLine (((HttpWebResponse) reactie) .StatusDescription);
            // krijgt de stroom die die inhoud bevatten door de server is teruggekeerd.
            dataStream = response.GetResponseStream ();
            // opent de stroom gebruikend een StreamReader voor gemakkelijke toegang.
            StreamReader reader2 = nieuwe StreamReader (dataStream);
            // leest de inhoud.
            koord responseFromServer2 = reader2.ReadToEnd ();
            // Vertoning de inhoud.
            webBrowser1.DocumentText = responseFromServer2;
            Omhoog Schoon // de stromen.
            lezer. Sluit ();
            dataStream.Close ();
            reactie. Sluit ();




Secondary, hoe ik kan simuleren leggen knoop voor? Nadat ik klaar ben met het uitgeven van de post, om de veranderingen voor te leggen?
Thanks vooraf.

Antwoord : De POST van Webrequest

Het moet de naam van de onderzoeksdoos zijn.

Als u HTML EE controleert, is er een bos van andere verborgen gebieden die samen met soort tekst door de gebruiker worden verzonden. U weet of geen van die door de server worden gecontroleerd en een afwezigheid van die de server kan veroorzaken om fout terug te keren of enkel stil op de pagina terug te komen. Who weet… het

U zou moeten proberen door alle vormgebieden in uw onderzoeksgegevens toe te voegen. Een snelle die manier is WireShark te beginnen en een steekproefonderzoek te vangen en de gegevens te onderzoeken naar de server worden verzonden. Kopi�ër enkel het gegevensdeel en kleef het in uw programma om een snelle controle te doen.

Zoals voor voor leg, er werkelijk te doen niets zijn. Post enkel de vormgegevens aan URL in de „actie“ attributen wordt gespecificeerd van de vorm die. Als er niets enkel post aan de huidige pagina zijn (PostBack). Ook, hoe u post hangen de gegevens (het formaat) van de „het coderen“ attributen van de Vorm af. Als het wordt www-url-gecodeerd, is het als een vraag-koord met url codeerde sleutels en waarden.

Als het/vorm-gegevens meerdelig is, dan is dat een geheel verschillend verhaal. Ik geloof voor uw geval, gaat het meestal het www-url-gecodeerde type zijn.

Hoop die… helpt

Andere oplossingen  
 
programming4us programming4us