ci riprovo per la terza volta cercando di essere il più chiaro possibile...
allora...volevo creare un applicazione per accedere con le credenziali di login ad un sito e ricavare informazioni da una pagina....tralasciando per ora il secondo punto, per accedere al sito devo inviare con il metodo post una stringa contenente i dati per il login... e questo è il mio problema...ho trovato un codice che credevo funzionante ma non nel mio caso... il codice è il seguente:
codice:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Namespace Examples.System.Net
Public Class WebRequestPostExample
Public Shared Sub Main()
' Create a request using a URL that can receive a post.
Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/PostAccepter.aspx ")
' Set the Method property of the request to POST.
request.Method = "POST"
' Create POST data and convert it to a byte array.
Dim postData As String = "This is a test that posts this string to a Web server."
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
' Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded"
' Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length
' Get the request stream.
Dim dataStream As Stream = request.GetRequestStream()
' Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length)
' Close the Stream object.
dataStream.Close()
' Get the response.
Dim response As WebResponse = request.GetResponse()
' Display the status.
Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
' Get the stream containing content returned by the server.
dataStream = response.GetResponseStream()
' Open the stream using a StreamReader for easy access.
Dim reader As New StreamReader(dataStream)
' Read the content.
Dim responseFromServer As String = reader.ReadToEnd()
' Display the content.
Console.WriteLine(responseFromServer)
' Clean up the streams.
reader.Close()
dataStream.Close()
response.Close()
End Sub
End Class
End Namespace
cambiando questo codice:
codice:
Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/PostAccepter.aspx ")
in questo:
codice:
Dim request As WebRequest = WebRequest.Create("http://www.miosito.it/login.asp ")
tutto funziona...
ma se cambio questo:
codice:
Dim postData As String = "This is a test that posts this string to a Web server."
in questo:
codice:
Dim postData As String = "login=admin&pwd=sys"
mi dà il seguente errore:
WebException non è stata gestita
Errore del server remoto: (404) Non trovato.
nella seguente stringa di codice:
codice:
Dim response As WebResponse = request.GetResponse()
La mia domanda è: il codice che ho trovato fà al caso mio? e se si... come posso utilizzarlo?
spero di essere stato abbastanza chiaro.. Grazie