InicioApuntes Y MonografiasPasar datos por método POST a terceros - Asp.Net

Pasar datos por método POST a terceros - Asp.Net

Bueno, un problema que se me presentó trabajando con Asp.net fue en un sitio que tenía que pasar por método POST ciertos datos a una página de pagos electrónicos.

La forma más práctica de pasar datos entre páginas aspx con el método POST es la que se detalla en esta página de forma sencilla:

http://netcodigo.webinfo.es/2006/10/10/pasar-datos-entre-paginas-web-asp-net-20/

Ahora, esto en el caso que yo describo no sirve, ya que no soy yo quien maneja los datos en la página destino, sino un tercero que espera que se los mande por POST.

Para solucionar esto escribí la siguiente clase, si alguno de ustedes se les presenta el mismo problema no tienen más que copiar/pegar el siguiente código (y después leerlo, obviamente jeje)



using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Esta clase genera los formularios para mandar por post los datos a otras páginas
/// </summary>
public class RemotePost
{
System.Collections.Specialized.NameValueCollection _Inputs = new System.Collections.Specialized.NameValueCollection();
string _Url = "";
string _Method = "post";
string _FormName = "form1";

/// <summary>
/// Devuelve o setea la url del medio de pago
/// </summary>
public string Url
{
get {return _Url;}
set {_Url = value;}
}

/// <summary>
/// Agrega inputs hidden al formulario
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public void Add(string name, string value)
{
_Inputs.Add(name,value);
}

/// <summary>
/// Imprime en el cliente el formulario de compra
/// </summary>
public void Post()
{
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Write("" );
System.Web.HttpContext.Current.Response.Write(String.Format("<html><head></head><body onload=\"document.{0}.submit()\">", _FormName));
System.Web.HttpContext.Current.Response.Write(String.Format("<center><form target=\"_blank\" name=\"{0}\" method=\"{1}\" action=\"{2}\" >", _FormName, _Method, Url));

for (int i = 0; i < _Inputs.Keys.Count; i++)
{
System.Web.HttpContext.Current.Response.Write(String.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", _Inputs.Keys[i ], _Inputs[_Inputs.Keys[i ]]));
}
System.Web.HttpContext.Current.Response.Write("</form></center></body></html>" );
}
}




Bien, ¿y cómo se usa esto?



protected void Button1_Click(object sender, EventArgs e)
{


RemotePost myremotepost = new RemotePost();
myremotepost.Url = "https://argentina.dineromail.com/Shop/Shop_Ingreso.asp";
myremotepost.Add("NombreItem", "ValorItem" );
myremotepost.Add("NombreItem2", "ValorItem2" );
myremotepost.Add("NombreItem2", "ValorItem2" );
myremotepost.Post();

}


________________________________________________________________________________________

Fuente: http://codigodavincipuntonet.blogspot.com/
Datos archivados del Taringa! original
25puntos
12,468visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

m
Usuario
Puntos0
Posts9
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.