ASP.NET - Metodo POST

   
Vista:

Metodo POST

Publicado por Victor Elizondo (2 intervenciones) el 13/10/2010 18:53:00
Buenos dias

Tengo una petición acerca del método POST:

Aquí tengo un código básico del método POST el cual esta en el ASP, todo del lado del cliente:

---------------------------------------------------------------------------------------------------------------------------
<form id="frmPrueba" runat="server" action="https://avicto.beer.php" method = "post" >
<div>
<INPUT TYPE="TEXT" NAME="NombreMens" /><br>
<INPUT TYPE="TEXT" NAME="PaisMens" /><br>
<INPUT TYPE="submit" id="boton" />
</div>
</form>
---------------------------------------------------------------------------------------------------------------------------
Entonces al correrlo si hace el POST y redirecciona a la página de https://avicto.beer.php

Lo que yo necesito es realizar esto pero por código del lado del sevidor, por Code Behind, de que al darle click al botón corriendo del lado del servidor me redireccione a esa página. Ya intenté previamente agregarles lo de runat = "server" a los textbox y botón de arriba, pero si hago eso NO FUNCIONA EL POST, simplemente no manda la información.

Tengo un código del lado del servidor para hacer ese POST, pero como lo que obtengo de respuesta de esa página se queda en una variable ( que es un string con todo el HTML embebido) y NO PUEDO REDIRECCIONARLO, se queda en mi localhost ( o sea, que me aparezca la respuesta en la pagina https://avicto.beer.php).

Les incluyo este código el cual esta dentro del evento LOAD:

--------------------------------------------------------------------------------------------------------------------------

string NombreMens = "Brenda Meza";
string PaisMens = "mejico";

string appURL = string.Empty;
appURL = "https://avicto.beer.php";
string strPostData = String.Format("NombreMens={0}&PaisMens={1}",
NombreMens, PaisMens);

// Setup the http request.
HttpWebRequest wrWebRequest = WebRequest.Create(appURL) as
HttpWebRequest;
wrWebRequest.Method = "POST";
//wrWebRequest.ContentLength = strPostData.Length;
wrWebRequest.ContentLength = System.Text.Encoding.UTF8.GetByteCount(strPostData);
wrWebRequest.ContentType = "application/x-www-form-urlencoded";

wrWebRequest.CookieContainer = new CookieContainer();

//byte[] bytes = Encoding.UTF8.GetBytes(strPostData);

// Post to the login form.
StreamWriter swRequestWriter = new
StreamWriter(wrWebRequest.GetRequestStream());
swRequestWriter.Write(strPostData);
//swRequestWriter.Write(bytes);
swRequestWriter.Close();

// Get the response.
HttpWebResponse hwrWebResponse =
(HttpWebResponse)wrWebRequest.GetResponse();

// Have some cookies.
CookieCollection ccCookies = hwrWebResponse.Cookies;

// Read the response
StreamReader srResponseReader = new
StreamReader(hwrWebResponse.GetResponseStream());
string strResponseData = srResponseReader.ReadToEnd();
srResponseReader.Close();

Response.Write(strResponseData);

-----------------------------------------------------------------------------------------------------------------------

En la última linea estoy escribiendo la respuesta HTML de la pagina sobre mi ASP, y precisamente de eso se trata, de que no se como REDIRECCIONAR ESO A https://avicto.beer.php Y EN DEFINITIVA TIENE QUE SER POR EL METODO POST.

Espero respuesta.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Metodo POST

Publicado por Victor Elizondo (2 intervenciones) el 15/10/2010 22:34:02
Que tal

Ya lo resolví de la siguiente manera:

En el codebehind use response.write para escribir lo mismo que haria el codigo del aspx, algo asi:

-----------------------------------------------------------------------------------------------------------
System.Web.HttpContext.Current.Response.Write("<form name='newForm' target='_parent' method=post action='https://avicto.beer.php'>");

System.Web.HttpContext.Current.Response.Write("<div>");

System.Web.HttpContext.Current.Response.Write(string.Format("<input type=hidden name=\"NombreMens\" value=\"{0}\">", NombreMens));

System.Web.HttpContext.Current.Response.Write(string.Format("<input type=hidden name=\"PaisMens\" value=\"{0}\">", PaisMens));

System.Web.HttpContext.Current.Response.Write("</div>");

System.Web.HttpContext.Current.Response.Write("</form>");

Response.Write("<SCRIPT LANGUAGE='JavaScript'>document.forms[0].submit();</SCRIPT>");

-----------------------------------------------------------------------------------------------------------

Realmente solo fui imprimiendo lo mismo del ASPX desde el codebehind Y AHORA SI ya puedo darle los valores a mis variables desde un Response.QueryString y asi que funcione el metodo POST y me redirecciones a la página deseada.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Metodo POST

Publicado por Virginia (1 intervención) el 13/03/2015 14:59:51
Victor
Yo estoy mandando el post como indicas y funciona ok, pero lo que necesito es obtener la respuesta de ese post y no que se abra otra pagina . Como hago?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar