Question : POTEAU de Webrequest

J'ai un peu d'un problème avec envoyer des messages de POTEAU à webpages.
I veux un programme qui est capable d'éditer des poteaux sur un vBulletin forum.

I ont déjà un morceau de code qui emploie Webrequest pour ouvrir une session et stocker le CookieContainer. Ainsi je peux obtenir à une nouvelle page de poteau tandis qu'ouvert une session sans problèmes. Le problème est moi ne peut signaler aucune données dans les boîtes à textes. Ou peut-être je peux mais il ne le montre pas que dans la réponse ce que je place à un web browser object.

What suis je faisant mal ? Voici mon code, pas avec un forum mais juste l'EE situent qui ne travaille pas non plus. J'essaye de signaler le « essai » au searchbox dans la droite supérieure, le nom est « gsearchBox » et l'identification est « q ». Est-ce que je dois employer le nom ou l'identification de l'élément ? class= " lineNumbers " >
1 de >

 // créent une demande using un URL qui peut recevoir un poteau.
            demande de variété = (HttpWebRequest) WebRequest.Create (« http://www.experts-exchange.com/ ") ;
            request.UserAgent =
    « Utilisateur-Agent : Mozilla/5.0 (Windows ; U ; Windows NT 5.1 ; De ; rv : 1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 » ;

            // a placé la propriété de méthode de la demande DE SIGNALER.
            demande. Méthode = « POTEAU » ;

            // créent des données de POTEAU et les convertissent en rangée de byte.
            postData de corde = « gsearchBox=testing » ;               // <------ NOM DU SEARCHBOX
            postData de //string = « q=testing2 » ;                       <------ IDENTIFICATION DU SEARCHBOX

            variété encoding2 = nouvel ASCIIEncoding () ;
            byte [] byteArray = encoding2.GetBytes (postData) ;

            (Demande (de HttpWebRequest)) .CookieContainer = cookiecontain ;
            // a placé la propriété de ContentType du WebRequest.
            request.ContentType = « application/x-www-form-urlencoded » ;
            // a placé la propriété de ContentLength du WebRequest.
            request.ContentLength = byteArray.Length ;
            request.KeepAlive = rectifient ;
            // obtiennent le jet de demande.
            dataStream de jet = request.GetRequestStream () ;
            // écrivent les données au jet de demande.
            dataStream.Write (byteArray, 0, byteArray.Length) ;
            Fin de // l'objet de jet.
            dataStream.Close () ;
            // obtiennent la réponse.
            Réponse de WebResponse = request.GetResponse () ;
            Affichage de // le statut.
            Console.WriteLine ((réponse (de HttpWebResponse)) .StatusDescription) ;
            // obtiennent le jet contenant le contenu retourné par le serveur.
            dataStream = response.GetResponseStream () ;
            // ouvrent le jet using un StreamReader pour facile d'accès.
            StreamReader reader2 = nouveau StreamReader (dataStream) ;
            // a lu le contenu.
            corde responseFromServer2 = reader2.ReadToEnd () ;
            Affichage de // le contenu.
            webBrowser1.DocumentText = responseFromServer2 ;
            // nettoient les jets.
            lecteur. Fin () ;
            dataStream.Close () ;
            réponse. Fin () ;
est-ce que question " claire " de >




Secondary de class= de
Thanks à l'avance. class= de

Réponse : POTEAU de Webrequest

Ce doit être le nom de la boîte de recherche.

Si vous examinez le HTML pour assurer l'EE, il y a un groupe d'autres champs cachés qui sont envoyés avec le texte dactylographié par l'utilisateur. Vous ne savez pas si un quelconque de ceux est vérifié par le serveur et une absence de ceux peut faire renvoyer l'erreur ou retourner juste silencieusement le serveur à la page. Qui sait…

Vous devriez essayer en ajoutant tous les champs de forme dans vos données de recherche. Une manière rapide est de commencer WireShark et de capturer une recherche d'échantillon et d'examiner les données envoyées au serveur. Juste copier la partie des données et la coller dans votre programme pour faire un contrôle rapide.

Quant à la soumission, il n'y a vraiment rien à faire. Signaler juste les données de forme à l'URL spécifiques dans l'attribut de « action » de la forme. S'il n'y en a aucun juste poteau à la page courante (PostBack). En outre, comment vous signalez les données (le format) dépendent de l'attribut de « codage » de la forme. Si elles WWW-URL-sont codées, elles sont comme une questionner-corde avec des clefs et des valeurs codées par URL.

Si c'est à parties multiples/forme-données, alors qui sont une histoire différente entière. Je crois pour votre cas, il va la plupart du temps être le type WWW-URL-codé.

Espérer qu'aides…

Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us