POST a la página web en vb.net (win forms, desktop, not ASP.net)

Tengo varios archivos PHP en los que los datos se publican (como la contraseña cuando el usuario inicia sesión) ¿Cómo puedo publicar en estos PHP desde vb.net (una aplicación de escritorio que es Windows Forms, esto no se trata de ASP.net)

Puede usar la clase WebClient . application/x-www-form-urlencoded configurar el encabezado Content-Type en application/x-www-form-urlencoded y luego usar el método UploadData . La documentación de ese método contiene un ejemplo simple, que básicamente se reduce a esto:

 Dim myWebClient As New WebClient() myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded") Dim responseArray = myWebClient.UploadData("http://...", "POST", Encoding.ASCII.GetBytes(postData)) Dim response = Encoding.ASCII.GetString(responseArray) 

La página de Wikipedia de HTTP POST contiene información sobre cómo deben codificarse los datos POST:

Cada par clave-valor está separado por un carácter ‘&’, y cada clave está separada de su valor por un carácter ‘=’. Las claves y los valores se escapan reemplazando espacios con el carácter ‘+’ y luego usando encoding URL en todos los demás caracteres.

Por lo tanto, su variable de postData se puede llenar de esta manera (suponiendo que los campos que desea publicar se denominan Nombre de usuario y Contraseña):

 Dim postData = String.Format("Username={0}&Password={1}", _ HttpUtility.UrlEncode(username), _ HttpUtility.UrlEncode(password))