francescobigozzi (Normal User)
Rookie
Messaggi: 30
Iscritto: 29/01/2010
|
Come da titolo devo far premere un bottone alla mia applicazione.
Senza naturalmente far intergire con l'utente.
So che bisogna usare la clesse WebRequest.
Grazie a coloro che risponderanno.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Dipende di che pulsante si tratta. Se è un <input> di tipo "submit", allora premerlo significa inviare il form a cui appartiene, e si può fare con una HttpWebRequest, inviando tutti i dati del form. Se è un <input> di tipo "button", allora avrà probabilmente qualche javascript allegato, e inviare una richiesta con WebRequest non servirebbe a nulla, poiché gli script sono lato client. In quest'ultimo caso, dovresti ottenere la struttura di tutta la pagina in un HtmlDocument, e scorrere tutti gli elementi fino al pulsante, quindi invocarne il click tramite HtmlElement.Invoke:
http://totemslair.org/guide/viewchapter.php?guida=vb&id=80
http://totemslair.org/guide/viewchapter.php?guida=vb&id=81
|
|
francescobigozzi (Normal User)
Rookie
Messaggi: 30
Iscritto: 29/01/2010
|
Grazie. Dimenticavo che devo anche scrivere una stringa in una casella di testo.
<input type="text" name="url" class="input" id="url" />
Qui devo scrivere un URL.
<input type="submit" name="submit" value="Button" class="button" />
E qui premere il bottone.
Mi pare di capire che il bottone è di tipo submit.
Adesso mi leggo la tua guida.
|
|
francescobigozzi (Normal User)
Rookie
Messaggi: 30
Iscritto: 29/01/2010
|
Non sono riuscito a risolvere molto per la verità
Devo realizzare un applicazione che scrive su una pagina php una stringa e prema un bottone.
Per semplicità posto il codice.
Codice sorgente - presumibilmente C# / VB.NET |
//Scive sulla stringa response il codice HTML della pagina web
response = CodeHTML("http://www.video2mp3.net/index.php");
if (response.Contains("<input type=\"text\" name=\"url\" class=\"input\" id=\"url\" />") && response.Contains("<input type=\"submit\" name=\"submit\" value=\"Convert\" class=\"button\" />"))
MessageBox.Show("La textbox e il bottone esistono!");
}
private string CodeHTML(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
using (Stream stream = request.GetResponse().GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
return response = reader.ReadToEnd();
}
|
Riesco solo a verificare l'esistenza del bottone e della textbox, ma non sono ancora riuscito a capire come scriverci!!
Ultima modifica effettuata da francescobigozzi il 15/08/2010 alle 9:36 |
|
francescobigozzi (Normal User)
Rookie
Messaggi: 30
Iscritto: 29/01/2010
|
Ho trovato un codice in rete, ma non so se ho capito come usarlo.
Codice sorgente - presumibilmente C# |
public static string HttpPost(string URI, string Parameters) { System.Net.WebRequest req = System.Net.WebRequest.Create(URI); req. Proxy = new System.Net. WebProxy(ProxyString, true); //Add these, as we're doing a POST req.ContentType = "application/x-www-form-urlencoded"; req.Method = "POST"; //We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value& byte [] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters); req.ContentLength = bytes.Length; System.IO.Stream os = req.GetRequestStream (); os.Write (bytes, 0, bytes.Length); //Push it out there os.Close (); System.Net.WebResponse resp = req.GetResponse(); if (resp== null) return null; System.IO. StreamReader sr = new System.IO. StreamReader(resp. GetResponseStream()); return sr.ReadToEnd().Trim(); }
|
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
|
|
francescobigozzi (Normal User)
Rookie
Messaggi: 30
Iscritto: 29/01/2010
|
Compreso.
Ricapitoliamo:
Nella pagina in cui devo interagire vengono usati dei javascipt, quindi per inserire del testo dovrei mandargli dei parametri e, siccome non compaiono nell'url e viene usato il metodo POST, il codice che avevo postato dovrebbe andar bene.
A questo punto come deve essere impostata la stringa Parameters?
Grazie per avermi prestato attenzione.
Ultima modifica effettuata da francescobigozzi il 15/08/2010 alle 12:48 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Postato originariamente da francescobigozzi:
Compreso.
Ricapitoliamo:
Nella pagina in cui devo interagire vengono usati dei javascipt, quindi per inserire del testo dovrei mandargli dei parametri e, siccome non compaiono nell'url e viene usato il metodo POST, il codice che avevo postato dovrebbe andar bene.
A questo punto come deve essere impostata la stringa Parameters?
Grazie per avermi prestato attenzione.
|
La query che devi inviare è esattamente identica a una query GET ("param=value¶m1=value2..."), solo che viene scritta sullo stream di rete. |
|
francescobigozzi (Normal User)
Rookie
Messaggi: 30
Iscritto: 29/01/2010
|
ma come posso sapere l'odine dei parametri e il loro nome?
Ho chiesto aiuto anke a un "collega", e mi ha detto che bisogna sapere l'header. C'è un programma che lo riesce a individuare?
|
|