Questione : ALBERINO di Webrequest

Sto avendo una punta di un problema con l'invio dei messaggi dell'ALBERINO a webpages.
I voglio un programma che è capace di pubblicazione degli alberini su un vBulletin forum.

I già ha una parte del codice che usa Webrequest per entrare ed immagazzinare il CookieContainer. Così posso ottenere ad una nuova pagina dell'alberino mentre entrato senza problemi. Il problema è io non può inviare tutti i dati nelle caselle di testo. O forse posso ma non lo mostra che nella risposta quale regolo ad un web browser object.

What sono che faccio male? Qui è il mio codice, non con una tribuna ma appena l'EE colloca che non lavora neanche. Sto provando ad inviare “la prova„ al searchbox nella destra superiore, il nome è “gsearchBox„ e l'identificazione è “q„. Devo usare il nome o l'identificazione dell'elemento? class= " lineNumbers " >
1 del >

 // genera una richiesta using un URL che può ricevere un alberino.
            richiesta di varietà = (HttpWebRequest) WebRequest.Create (“http://www.experts-exchange.com/ ");
            request.UserAgent =
    “Utente-Agente: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv: 1.8.1.1) Gecko/20061204 Firefox/2.0.0.1„;

            // ha regolato la proprietà di metodo della richiesta DI INVIARE.
            richiesta. Metodo = “ALBERINO„;

            // genera i dati dell'ALBERINO e li converte in allineamento di byte.
            postData della stringa = “gsearchBox=testing„;               // <------ NOME DEL SEARCHBOX
            postData di //string = “q=testing2„;                       <------ IDENTIFICAZIONE DEL SEARCHBOX

            varietà encoding2 = nuovo ASCIIEncoding ();
            byte [] byteArray = encoding2.GetBytes (postData);

            (Richiesta (di HttpWebRequest)) .CookieContainer = cookiecontain;
            // ha regolato la proprietà di ContentType del WebRequest.
            request.ContentType = “application/x-www-form-urlencoded„;
            // ha regolato la proprietà di ContentLength del WebRequest.
            request.ContentLength = byteArray.Length;
            request.KeepAlive = allineano;
            // ottiene il flusso di richiesta.
            dataStream del flusso = request.GetRequestStream ();
            // redige i dati al flusso di richiesta.
            dataStream.Write (byteArray, 0, byteArray.Length);
            Fine di // l'oggetto del flusso.
            dataStream.Close ();
            // ottiene la risposta.
            Risposta di WebResponse = request.GetResponse ();
            Esposizione di // la condizione.
            Console.WriteLine ((risposta (di HttpWebResponse)) .StatusDescription);
            // ottiene il flusso che contiene il soddisfare restituito dall'assistente.
            dataStream = response.GetResponseStream ();
            // apre il flusso using uno StreamReader per accesso facile.
            StreamReader reader2 = nuovo StreamReader (dataStream);
            // ha letto il soddisfare.
            stringa responseFromServer2 = reader2.ReadToEnd ();
            Esposizione di // il soddisfare.
            webBrowser1.DocumentText = responseFromServer2;
            // pulisce i flussi.
            lettore. Fine ();
            dataStream.Close ();
            risposta. Fine ();
domanda " libera " di >



Secondary del class= di
Thanks in anticipo. class= del

Risposta : ALBERINO di Webrequest

Deve essere il nome della scatola di ricerca.

Se controllate il HTML per vedere se c'è l'EE, ci è un mazzo di altri campi nascosti che sono trasmessi con il testo scriv dall'utente. Non non sapere se c'è ne di quelli sono controllati dall'assistente e un'assenza di quelle può indurre l'assistente a restituire l'errore o a rinviare appena silenziosamente alla pagina. Chi sa…

Dovreste provare aggiungendo tutti i campi della forma nei vostri dati di ricerca. Un senso rapido è di iniziare WireShark e bloccare una ricerca del campione ed esaminare i dati inviati all'assistente. Appena copiare la parte di dati ed incollarla nel vostro programma per fare un controllo rapido.

Per quanto riguarda la presentazione, ci è realmente niente fare. Inviare appena i dati della forma al URL specificati nell'attributo “di azione„ della forma. Se non ci ne sono appena alberino alla pagina corrente (PostBack). Inoltre, come inviate i dati (la disposizione) dipendono dall'attributo “della codifica„ della forma. Se WWW-URL-sono messi, sono come una interrogare-stringa con le chiavi ed i valori messi URL.

Se è a più parti/forma-dati, quindi che sono un'intera storia differente. Credo per il vostro caso, esso principalmente sto andando essere il tipo WWW-URL-messo.

Sperare che aiuti…

Altre soluzioni  
 
programming4us programming4us