alguien me podria decir como hacer una conexion http/1.1 en vb.net?
cuando aprendi a programar en vb6 usaba el winsock.ocx pero cuando pase a .net segui usando el winsock.ocx por que no he encontrado una libreria que haga lo mismo esta es la funcion que uso
Private Sub AxWinsock4_ConnectEvent(sender As Object, e As EventArgs) Handles AxWinsock4.ConnectEvent
Dim Cadstr As String
Cadstr = "variable=valor&variable2=valor"
AxWinsock4.SendData("POST /pagina.php HTTP/1.1" & vbCrLf & _
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*" & vbCrLf & _
"Accept-Encoding: gzip, deflate" & vbCrLf & _
"Accept-Charset: utf-8" & vbCrLf & _
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)" & vbCrLf & _
"Host: " & AxWinsock4.RemoteHost & ":" & AxWinsock4.RemotePort & vbCrLf & _
"Content-Length: " & Len(Cadstr) & vbCrLf & _
"Connection: Keep-Alive" & vbCrLf & _
"Cache-Control: no-cache" & vbCrLf & vbCrLf & _
Cadstr & vbCrLf)
End Sub
y con esto proceso los datos recibidos
Private Sub AxWinsock4_DataArrival(sender As Object, e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles AxWinsock4.DataArrival
Dim Datos As String = 100000
On Error Resume Next
AxWinsock4.GetData(Datos)
If InStr(Datos, "404 Not Found") <> 0 Then
Me.Close()
End If
End Sub
he encontrado ejemplos de como hacer algo asi masomenos pero usan directamente servidores ip y relmente no me sirve por que lo que quiero es que conecte a una pagina como si estubiera usando el explorador y poder procesar el codigo como lo hace el codigo que puse.
Hola, usa las clases de .NET, no uses mas los controles OCX viejos de vb6.
Imports System.Net.Sockets
saludos.
Cita de: darky666 en 21 Diciembre 2014, 02:18 AMcuando aprendi a programar en vb6 usaba el winsock.ocx pero cuando pase a .net segui usando el winsock.ocx por que no he encontrado una libreria que haga lo mismo esta es la funcion que uso
Añado a lo que te ha comentado el compañero @
seba123neo:
⇲Winsock.NET (http://www.codeproject.com/Articles/11422/Winsock-NET)
No te estoy recomendando la librería (sobre todo por que en el source usa malísimas practicas al ser del año 2005 también), pero está basado en la utilización del Namespace
Sockets, así que quizás no haya mejor ejemplo para familiarizarte con una sintaxis que ya conocias (la de winsock.ocx) ya que el autor le asignó los mismos nombres a los métodos etc, plus puedes examinar el source para ir aprendiendo el manejo de los miembros del Namespace
Sockets, y así hacerlo por ti mismo sin necesidad de depender de librerías ni ActiveX, ya que no resulta necesario.
⇲ Además, lee la referencia oficial:
System.Net.Sockets Namespace (http://msdn.microsoft.com/en-us/library/system.net.sockets%28v=vs.110%29.aspx)
Entiendo que vienes de VisualBasic6 y no te has acostumbrado, pero esto debes evitarlo en VB.Net:
On Error Resume Next
Es una técnica obsoleta al considerarse improductiva/ineficiente (en vb.net), y por ende es una mala práctica, en su lugar puedes usar un bloque try/catch/finally.
Utilizar las funciones de VB6 como InStr es otra mala prácica, ya que la librería de Classes de .Net framework aparte de exponer un Wrapper de las funciones de VB6 también pone a tu disposición un equivalente de todas esas funciones en VB.Net, las cuales siguen los estándares de la programación actual.
Saludos!
muchas gracias por sus respuestas me ayudaron al 100 ahora uso los sockets de .net por fin despues de años no usare mas la libreria winsock.ocx ;-)