PDA

View Full Version : [ Vb.NET 2008 ] Web e Metodi POST - Genymus


Genymus
15-06-2010, 11:44
Salve a tutti...
Devo interfacciare la mia applicazione con il Web più precisamente su una pagina in php tramite metodo post... mi spiego meglio:
1] la mia applicazione si connette alla pagina php (Es: "http://www.miosito.ext/pagina.php");
2] invia una stringa tramite metodo post (Es: text=prova);
3] la mia applicazione visualizza l'html creato dalla pagina in php;

Ho provato usando il WebBrowser del .NET Framework ma non riesco a capire come inviare le informazioni tramite metodo POST...
guardando su internet ho trovato una guida su come utilizzare l'activex di internet explorer con il costruttore Navigate2 che purtroppo non riesco a far funzionare...

Spero che qualcuno risponda...
Grazie anticipatamente.

Genymus

Genymus
15-06-2010, 13:13
Ho dimenticato di dire che non vorrei controllare e compilare form html con input e botton sulla pagina, ma preferirei inviare la stringa "POST" direttamente.

Grazie ancora.

tomminno
15-06-2010, 13:38
Puoi usare il metodo Navigate a cui passare url e dati in post.

Genymus
15-06-2010, 20:06
ma sul web browser mi dice che posso passare solo url e non posso passare altri argomenti... puoi essere più preciso?

Grazie

tomminno
15-06-2010, 22:33
Il metodo è questo: http://msdn.microsoft.com/en-us/library/ms161356.aspx

Genymus
15-06-2010, 22:54
Ok ha funzionato... Grazie Mille.

Posterò una soluzione pratica in modo che chi ha o potrà avere il mio stesso problema lo possa risolvere facilmente.

tomminno
15-06-2010, 23:11
Ok... ma non riesco a capire come integrare il webbrowser.
Quello della barra degli strumenti non mi permette di inserire tutti quei parametri.

Quello è un metodo che devi richiamare via codice.

Potresti postare un pò di codice? Perchè così alla cieca è difficile darti indicazioni.

Genymus
15-06-2010, 23:26
Miniguida di base su come inviare informazioni tramite il controllo WebBrowser e il metodo POST:
Ps1: Il codice postato è perfettamente funzionante.
Ps2: La prima parte del codice è commentata.
Ps3: Il codice è stato provato con "Visual Studio 2008 Visual Basic .NET" ed ".NET Framework 2.0/3.5"

Controlli Totali:

1 - WebBrowser - [Nome: Web ]
1 - Bottone [ Nome: Naviga ]


Sulla parte di codice (prima del "Public Class") aggiungere il seguente codice:
Imports System.Text

Sull'evento click del bottone inserire il seguente codice:
Dim Url, PostData, Headers As String
Dim byteArray As Byte()

Url = "http://" 'Inserire l'url della pagina [Es: http://www.miosito.ext/pagina.php]
PostData = "var=text" 'Inserire le informazioni da inviare [Es: Variabile=Prova]
byteArray = Encoding.ASCII.GetBytes(PostData) 'Questa funzione serve a convertire i dati in byte (Non Modificare)
Headers = "Content-Type: application/x-www-form-urlencoded" & vbCrLf 'Questo dichiara gli headers (Modificare solo se necessario)

Web.Navigate(Url, "", byteArray, Headers) ' Tramite questo controllo si inviano le informazioni... il secondo parametro corrisponde al "targetFrameName"

Riepilogando l'intero codice dovrebbe apparire così:
Imports System.Text

Public Class MioProgetto

Private Sub Naviga_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Naviga.Click
Dim Url, PostData, Headers As String
Dim byteArray As Byte()

Url = "http://www.miosito.ext/pagina.php"
PostData = "Variabile=Prova"
byteArray = Encoding.ASCII.GetBytes(PostData)
Headers = "Content-Type: application/x-www-form-urlencoded" & vbCrLf

Web.Navigate(Url, "", byteArray, Headers)
End Sub

End Class

Per ulteriori informazioni rimando (come postato da tomminno) al link su msdn:
http://msdn.microsoft.com/en-us/library/ms161356.aspx

Un ringraziamento a "tomminno" per l'aiuto.