DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Códigofonte.net: Como enviar uma requisição do tipo POST em ASP.NET

Veja nessa dica, como enviar uma requisição do tipo Post em ASP.NET 2.0.

Como enviar uma requisição do tipo POST em ASP.NET?

 

Segue o exemplo todo comentado, é só copiar e se precisar, fazer alguns ajustes para adequar às suas necessidades. Testado e funcionando com .NET 2.0

 

using System;

using System.Net;

using System.IO;

using System.Text;

using System.Web; // não esqueça de fazer referência a dll em seu projeto

 

namespace Microsoft.Samples.QuickStart.HowTo.Net.WebRequests

{

    static class ClientPOST

    {

        public static void Main(string[] args)

        {

            // Enviando para a página do terra os parametros pelo método post

            GetPage("http://www.terra.com.br", "parametro1=valor1&parametro2=valor2");

 

            Console.WriteLine();

            Console.WriteLine("Pressione algo para continuar...");

            Console.ReadLine();

        }

 

        private static void GetPage(String url, String query)

        {

            // Declarações necessárias

            Stream requestStream = null;

            WebResponse response = null;

            StreamReader reader = null;

 

            try

            {

                WebRequest request = WebRequest.Create(url);

                request.Method = WebRequestMethods.Http.Post;

 

                // Neste ponto, você está setando a propriedade ContentType da página

                // para urlencoded para que o comando POST seja enviado corretamente

                request.ContentType = "application/x-www-form-urlencoded";

 

                StringBuilder urlEncoded = new StringBuilder();

 

                // Separando cada parâmetro

                Char[] reserved = { '?', '=', '&' };

 

                // alocando o bytebuffer

                byte[] byteBuffer = null;

 

                // caso a URL seja preenchida

                if (query != null)

                {

                    int i = 0, j;

                    // percorre cada caractere da url atraz das palavras reservadas para separação

                    // dos parâmetros

                    while (i < query.Length)

                    {

                        j = query.IndexOfAny(reserved, i);

                        if (j == -1)

                        {

                            urlEncoded.Append(query.Substring(i, query.Length - i));

                            break;

                        }

                        urlEncoded.Append(query.Substring(i, j - i));

                        urlEncoded.Append(query.Substring(j, 1));

                        i = j + 1;

                    }

                    // codificando em UTF8 (evita que sejam mostrados códigos malucos em caracteres especiais

                    byteBuffer = Encoding.UTF8.GetBytes(urlEncoded.ToString());

 

                    request.ContentLength = byteBuffer.Length;

                    requestStream = request.GetRequestStream();

                    requestStream.Write(byteBuffer, 0, byteBuffer.Length);

                    requestStream.Close();

                }

                else

                {

                    request.ContentLength = 0;

                }

 

                // Dados recebidos

                response = request.GetResponse();

                Stream responseStream = response.GetResponseStream();

 

                // Codifica os caracteres especiais para que possam ser exibidos corretamente

                System.Text.Encoding encoding = System.Text.Encoding.Default;

 

                // Preenche o reader

                reader = new StreamReader(responseStream, encoding);

 

                Char[] charBuffer = new Char[256];

                int count = reader.Read(charBuffer, 0, charBuffer.Length);

 

                StringBuilder Dados = new StringBuilder();

 

                // Lê cada byte para preencher meu stringbuilder

                while (count > 0)

                {

                    Dados.Append(new String(charBuffer, 0, count));

                    count = reader.Read(charBuffer, 0, charBuffer.Length);

                }

 

                // Imprimo o que recebi

                Console.Write(Dados);

            }

            catch (Exception e)

            {

                // Ocorreu algum erro

                Console.Write("Erro: " + e.Message);

            }

            finally

            {

                // Fecha tudo

                if (requestStream != null)

                    requestStream.Close();

                if (response != null)

                    response.Close();

                if (reader != null)

                    reader.Close();

            }

        }

    }

}

 

Conheça o nosso Parceiro Códigofonte.net


Códigofonte.net
Parceiro Códigofonte.net
O que você achou deste post?

    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Jason Sousa
Minha pagina está dando erro. Na realidade em .net sou leigo, gostaria que vc colocasse um exemplo. Obrigado
[há +1 ano] - Responder

 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03