Programando en .NET (c#, VB.NET, ASP.NET)

Nuevo usuario | Conectarse

Programando en .NET

freelance web desarrollador programador autonomo .net framework microsoft aplicacion escritorio vb.net ASP.NET VB.NET C# DLL HTML JavaScript VBA VBScript CSS SQL Server sqlServer Access MySQL

Categorías

Top Mas Visitados

Comentarios Recientes

Mejores Posts

Archivo

Links

Compartir

Contacto

Como enviar un formulario post a otra web o pagina por codigo

Por Alvaro
08/06/2009

Enviar esta pagina a un amigo.    

Nos vamos a hacer una clase especial que vamos a poder reutilizar siempre que queramos para la llamada.

Luego, solo tenemos que llamar a la clase con los parametros de nombre y action del formulario mas los campos que le corresponden.

La clase es esta:

Public Class RemotePost
    Private Inputs As System.Collections.Specialized.NameValueCollection = New System.Collections.Specialized.NameValueCollection

    Public Url As String = ""
    Public Method As String = "post"
    Public FormName As String = "form1"

    Public Sub Add(ByVal name As String, ByVal value As String)
        Inputs.Add(name, value)
    End Sub

    Public Sub Post()
        With Current.Response
            .Clear()
            .Write("<html><head>")
            .Write(String.Format("</head><body onload=""document.{0}.submit()"">", FormName))
            .Write(String.Format("<form name=""{0}"" method=""{1}"" action=""{2}"" >", FormName, Method, Url))
            Dim i As Integer = 0
            Do While i < Inputs.Keys.Count
                .Write(String.Format("<input name=""{0}"" type=""hidden"" value=""{1}"">", Inputs.Keys(i), Inputs(Inputs.Keys(i))))
                i += 1
            Loop
            .Write("</form>")
            .Write("</body></html>")
            .End()
        End With
    End Sub
End Class
Para llamar a la pagina, usaremos esta rutina que llama a la clase desde un boton, el load de la pagina, lo que querais:
Dim myremotepost As RemotePost = New RemotePost
myremotepost.Url = "bank_response.aspx"
myremotepost.Add("field1", "Huckleberry")
myremotepost.Add("field2", "Finn")
myremotepost.Post()
Ya solo queda leer el formulario y tratar la informacion desde la pagina que recibe los datos, por ejemplo:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Request.Form.Count > 0 Then
            For Each Str As String In Request.Form.AllKeys
                Response.Write(Str & " : " & Request.Form.Item(Str))
            Next
        End If
    End Sub
Ahora solo cuidado con lo que usais este codigo y a ver que tipos de formularios rellenais ;)

2 comentarios en total.

  1. Añadí la clase RemotePost a mi proyecto pero me marco error en la linea: With Current.Response Ya que me marca que Current no esta declarado. ¿A que te refieres con Current?

    Por Alf en 27/08/2009 Tu comentario sera moderado.

  2. Buenos días, Por favor ayúdenme con esto: ¿Cómo puedo enviar los parámetros post que estan más abajo a una web? La web es "http://evtde.argonautanet.com/Varios/ComprobacionTelefono.aspx". Los parámetros post son: ctl00_TreeMenuPpal_ExpandState=en&ctl00_TreeMenuPpal_SelectedNode=ctl00_TreeMenuPpalt1&__EVENTTARGET=&__EVENTARGUMENT=&ctl00_TreeMenuPpal_PopulateLog=&__VIEWSTATE=%2FwEPDwUKMTE0NTEwNzUyNA9kFgJmD2QWAgIDD2QWDAIDD2QWCgIBDw8WAh4HVmlzaWJsZWhkZAIDDw8WBB4EVGV4dAUDRVZUHwBoZGQCBQ8PFgIfAGhkZAIHDw8WAh8AaGRkAgkPDxYCHwBoZGQCBQ8PFgIfAGhkZAIHD2QWAgIBDw8WAh8BBQNFVlRkZAIJDzwrAAkCAA8WCB4NTmV2ZXJFeHBhbmRlZGQeC18hRGF0YUJvdW5kZx4MU2VsZWN0ZWROb2RlBRRjdGwwMF9UcmVlTWVudVBwYWx0MR4JTGFzdEluZGV4AgJkCBQrAAIFAzA6MBQrAAIWEB8BBQVFVlRERR4FVmFsdWUFBUVWVERFHgxTZWxlY3RBY3Rpb24LKi5TeXN0ZW0uV2ViLlVJLldlYkNvbnRyb2xzLlRyZWVOb2RlU2VsZWN0QWN0aW9uAx4IRGF0YVBhdGgFJGNjZWJlZTcxLWJhNDEtNDI1Zi1iYjNiLWVlMjFlNWVlM2Y5Nh4JRGF0YUJvdW5kZx4QUG9wdWxhdGVPbkRlbWFuZGgeCEV4cGFuZGVkZx4JUG9wdWxhdGVkZxQrAAIFAzA6MBQrAAIWDh8BBRdDb21wcm9iYWNpw7NuIHRlbMOpZm9ubx8GBRdDb21wcm9iYWNpw7NuIHRlbMOpZm9ubx4LTmF2aWdhdGVVcmwFIS9WYXJpb3MvQ29tcHJvYmFjaW9uVGVsZWZvbm8uYXNweB8IBSEvdmFyaW9zL2NvbXByb2JhY2lvbnRlbGVmb25vLmFzcHgfCWceCFNlbGVjdGVkZx8LZ2RkAgsPZBYCAgUPPCsADQIADxYEHwNnHgtfIUl0ZW1Db3VudGZkDBQrAAMWCB4ETmFtZQUFRmVjaGEeCklzUmVhZE9ubHloHgRUeXBlGSsCHglEYXRhRmllbGQFBUZlY2hhFggfEAUESG9yYR8RaB8SGSsCHxMFBEhvcmEWCB8QBQlSZXN1bHRhZG8fEWgfEhkrAh8TBQlSZXN1bHRhZG9kAg0PFgIeD1NpdGVNYXBQcm92aWRlcgUDV2ViZBgCBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAgUSY3RsMDAkVHJlZU1lbnVQcGFsBRdjdGwwMCRNYWluJEJ0bkNvbXByb2JhcgUXY3RsMDAkTWFpbiRkZ3ZSZXN1bHRhZG8PPCsACQEIZmTi2RMkeubY2wqn87OdXXSdIVcizA%3D%3D&ctl00%24Main%24txtTelefono=12345678&ctl00%24Main%24BtnComprobar.x=67&ctl00%24Main%24BtnComprobar.y=11&__EVENTVALIDATION=%2FwEWBALUv478CQKenYa6CgLh5s3xAQKdzbGnDSVeRTpwz6uHgCXS4yLnRG6vOOHi

    Por freich en 20/01/2010 Tu comentario sera moderado.

Pon un comentario:

Debes estar registrado para enviar comentarios.

Debes estar registrado para enviar comentarios. Hazlo, es un segundo! ;)
Deseas ir a la pagina de registro?. O, si ya estas registrado, a la de login?

Programando en .NET freelance web desarrollador programador autonomo .net framework microsoft aplicacion escritorio vb.net ASP.NET VB.NET C# DLL HTML JavaScript VBA VBScript CSS SQL Server sqlServer Access MySQL
Copyright: yoquierounblog