ASP.NET - Objetos Response e Request


Os objetos Response e Request ainda existem e podem usados em páginas ASP.NET. Estes objetos representam a informação chegando no servidor Web a partir do navegador(Request) e a informação saindo do servidor para o navegador(Response). O objeto Request representa o objeto input e o objeto Response representa o objeto output.

As propriedades do cabeçalho response são somente leitura. Abaixo podemos enumerar as principais propriedades deste objeto:

Principais propriedades de Response:

Body: Obtêm o corpo do HTTP response. Somente a porção do corpo armazenado no buffer respose é retornado.
BytesRecv: Obtêm o número de bytes que o cliente recebeu no response.
BytesSent
: Obtêm o número de bytes enviados em um request HTTP.
CodePage: Obtêm ou define o código da página usado para configurar o corpo do response HTTP.
ContentLength: Obtêm o tamanho em bytes do corpo response.
Headers
: Obtêm uma coleção de cabeçalhos em  response
HeaderSize: Obtêm o tamanho combinado , em bytes, de todos os cabeçalhos response.
HTTPVersion
: Obtêm a versão HTTP usada pelo servidor para este response
Path: Obtêm o que foi requisitado.
Port
: Obtêm a porta do servidor usada para o request.
ResultCode: Obtêm o código de estado do response do servidor.
Server
: Obtêm o nome do servidor que enviou o response.
TTFB
: Obtêm o número de milisegundos que se passaram antes do primeiro byte do response ser recebido.
TTLB: Obtêm o número de milisegundos que se passaram antes que último byte do response foi recebido.
UseSSL: Verifica se o servidor e o clientes usam uma conexão SSL para o response e o request.

Já o objeto Request possui as seguintes propriedades:

Principais propriedades de Request:

Body: Obtêm/Defube o corpo do request HTTP
CodePage: Obtêm/Define o código da página para o corpo request.
EncodeQueryAsUTF8
: Obtêm/Define whether ACT automatically UTF-8 encodes the request's query string
Headers: Obtêm a coleção de cabeçalho HTTP
HTTPVersion
: Obtêm/Define a versão HTTP
Path
: Obtêm/Define o caminho HTTP
ResponseBufferSize: Obtêm/Define o tamanho do buffer usado para armazenar o corpo response.
Verb: Obtêm/Define o método verb HTTP

Vamos criar uma página ASP.NET usando estes dois objetos para exibir informações do response/request:

Abra o ASP.NET Web Matrix.
2.
    Selecione (General) do painel Templates.
3.
    Selecione o modelo ASP.NET Page.
4.
    Digite um caminho de arquivo na caixa Location. (no meu caso eu informei : d:\macoratti\aspnet\)
5.
    Digite teste1.aspx na caixa Filename. (você pode usar qualquer outro nome de arquivo válido)

Na guia Design insira dois botões de comando e 4 controles radiobutton conforme figura abaixo:

O código HTML gerado pode ser visto na guia HTML e o seguinte:

<html>
<head>
</head>
<body>
    <form runat="server">
        <p>
            <asp:Button id="Button2" onclick="Button2_Click" runat="server" Text="Clique aqui para exibir as informações na página.">
</asp:Button>
        </p>
        <p>
            <asp:RadioButton id="RadioButton1" runat="server" Text="Google"></asp:RadioButton>
        </p>
        <p>
            <asp:RadioButton id="RadioButton2" runat="server" Text="Amazon"></asp:RadioButton>
        </p>
        <p>
            <asp:RadioButton id="RadioButton3" runat="server" Text="Yahoo"></asp:RadioButton>
        </p>
        <p>
            <asp:RadioButton id="RadioButton4" runat="server" Text="Macoratti.net"></asp:RadioButton>
        </p>
        <p>
            <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Clique para ir para uma das páginas selecionadas">
</asp:Button>
        </p>
    </form>
</body>
</html>

 

O código do script usado na guia Code é exibido abaixo. Nele estou usando os objetos Response e Request para exibirem informações na página e para realizar a ação de redirecionar para outra página.

'redireciona para a página selecionada no radiobutton
Sub Button1_Click(sender As Object, e As EventArgs)
If RadioButton1.Checked = True Then
       Response.Redirect("http://www.google.com")
    ElseIf RadioButton2.Checked = True Then
      Response.Redirect("http://www.amazon.com")
    ElseIf RadioButton3.Checked = True Then
      Response.Redirect("http://www.yahoo.com")
    ElseIf RadioButton4.Checked = True Then
      Response.Redirect("http://www.macoratti.net")
End If
End Sub
'exibe informações do objeto Request
Sub Button2_Click(sender As Object, e As EventArgs)
    Response.Write("Usando o objeto Response para escrever na página...<p>")
    Dim s As String = Request.UserHostAddress()
    Response.Write("endereco do servidor : " & s & "<p>")
    Dim a As String = Request.ApplicationPath()
    'o caminho da aplicação
    Response.Write("Caminho da aplicação : " & a & "<P>")

    Dim aa As String = Request.Browser.Browser
    'o tipo do browser
    Response.Write("Tipo do Browser usado : " & aa & "<P>")
    Dim b As String = Request.CurrentExecutionFilePath
    'o caminho de execução
    Response.Write("Caminho de execução : " & b & "<P>")
    Dim c As String = Request.FilePath
    'o caminho do path com o qual voce esta trabalhando atualmente
    Response.Write(" Caminho do arquivo atual : " & c & "<P>")
    Dim cc As String = Request.HttpMethod
    'o meteodo HttpMethod
    Response.Write("Método HttpMethod  : " & cc & "<P>")
    If Request.Browser.Browser = "IE" Then
      'verifica se o browser é o IE e exibe uma mensagem
       Response.Write("Cuidado você esta usando o Internet Explorer <p>")
    Else
       Response.Write("Voce não esta usando o IE <p>")
    End If
    Response.Write("Seu computador possui as seguintes informações para o usuario :<p> " & Request.Useragent)
End Sub

 

Executando a página teremos o resultado:

Sem mais nada a declarar apenas usamos as propriedades de request e response e as exibimos.

Eu sei , é apenas ASP.NET, mas eu gosto ... 


José Carlos Macoratti