sábado, 25 de febrero de 2012

Envio de datos a un servidor web utilizando vb.net y recibir respuesta


Muchas veces es necesario enviar datos de una aplicación a un sitio web para diferentes actividades, 

las solicitudes se envían desde una aplicación a un identificador URI concreto, como una página Web de un servidor. El identificador URI determina la clase descendiente adecuada que se debe crear a partir de una lista de descendientes de WebRequest registrados para la aplicación. Los descendientes de WebRequest suelen registrarse para controlar un protocolo específico, como HTTP o FTP, pero se pueden registrar para controlar una solicitud a un servidor específico o una ruta de acceso en éste.

Para programar esto se necesita algo como lo que les e puesto a continuación  


ES NECESARIO PARA ESTO :

Un formulario









En VB.NET
IMPORTAR ESTAS LIBRERIAS:
Imports System.Net, System.Net.Sockets
Imports System.Web
Imports System.IO
Imports System.Text

  
EN EL BOTON PROGRAMAR ESTO:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      ‘// con esto llamo a la function usarPHP, donde le envió como parámetro: el url, el tipo POST, y las variables  nombre  edad  
     
      Dim resultadohtml As String = usarPHP("http://localhost/socket/prueba.php", "POST", "nombre=" & TextBox1.Text & "&edad=38 ")
   
     ‘// con esto muestro mel resultado en la caja de texto grande
       TextBox2.Text = resultadohtml

End Sub

LA FUNCION usarPHP ES LA SIGUIENTE
‘// esta función recibe los parámetros antes mencionados  el url, el tipo POST, y las variables  nombre  edad  llegan en cadena a la variable data
Public Function usarPHP(ByVal url As String, ByVal method As String, ByVal data As String)
        Try
            ‘//creamos la forma como se enviara los datos, en este caso “POST”
            Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(url)
            request.Method = method

            ‘//variable para tomar los datos del parámetro data que llega a la funcion
            Dim postData = data

            ‘//arreglo de bytes codificados con UTF8 para enviar los datos
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
            request.ContentType = "application/x-www-form-urlencoded"
            request.ContentLength = byteArray.Length
            Dim dataStream As Stream = request.GetRequestStream()
            dataStream.Write(byteArray, 0, byteArray.Length)
            dataStream.Close()

            ‘//con esto manejamos las respuestas del servidor
            Dim response As WebResponse = request.GetResponse()
            dataStream = response.GetResponseStream()
            Dim reader As New StreamReader(dataStream)
            Dim responseFromServer As String = reader.ReadToEnd()
            reader.Close()
            dataStream.Close()
            response.Close()
            Return (responseFromServer)
        Catch ex As Exception
            Dim error1 As String = ErrorToString()
            If error1 = "Direccion Invalida!!: el formato no ha sido determinado." Then
                MsgBox("ERROR! Debe de tener  http:// antes de la URL")
            Else
                MsgBox(error1)
            End If
            Return ("ERROR")
        End Try
    End Function

EN EL SERVIDOR WEB DEBERIA DE TENER LO SIGUIENTE
Tener una página http://localhost/socket/prueba.php ; el PHP  debería tener lo siguiente 
<?PHP
echo $_REQUEST["nombre"];
echo $_REQUEST["edad"];
?>

viernes, 17 de febrero de 2012

Envio de datos utilizando la clase WebRequest


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

viernes, 10 de febrero de 2012

Tarea

Desarrollar una aplicación que permita conocer la dirección MAC de una PC

Programación descubrir Nombre e IP de una PC


El siguiente es un ejemplo de como utilizar un lenguaje de programación para conocer los elementos nombre del PC y direcciones ip de una computadora.




UTILIZANDO .NET  10


Imports System.Net


"PARA MOSTRAR EL NOMBRE DE LA PC"
--- PONER ESTO EN UN BOTON -----


        Dim Host As String
        Host = Dns.GetHostName
        MsgBox(Host)




"PARA MOSTRAR LAS DIRECCIONES IP DE LA PC"
--- PONER ESTO EN UN BOTON -----
--- AQUI HAY QUE AÑADIR UN combito


        For Each ip In System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList
            If ip.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
                'Con esto se Añaden solo las IPv4
                Me.ComboBox1.Items.Add(ip)
            End If
        Next
--------------------------------