ASP .NET - Obtendo caminhos e propriedades URL do HttpRequest
Neste artigo eu vou mostrar como podemos obter informações de caminhos e propriedades URL do HttpRequest em uma aplicação ASP .NET Web Forms. |
A classe HttpRequest Permite que o ASP.NET leia os valores HTTP enviados por um cliente durante uma solicitação Web.
Ela contém propriedades e métodos necessários para lidar com uma solicitação HTTP. Contém também todas as informações passadas pelo navegador, incluindo todas as variáveis do formulário, certificados e informações de cabeçalho e as variáveis de servidor CGI.
Como exemplo veremos uma aplicação ASP .NET Web Forms onde obtemos informações da URl usando a classe HttpRequest.
Recursos usados:
Criando o projeto no Visual Studio 2013 Express for web
Abra o VS 2013 Express for web e clique em New Project;
Selecione a linguagem Visual C# e o template ASP .NET Web Application;
Informe o nome Aspnet_HttRequest_Urls e clique no botão OK;
A seguir selecione o template Empty e marque a opção Web Forms pois vamos criar um projeto vazio :
Vamos incluir uma nova página no projeto a partir do menu PROJECT -> Add New Item;
Selecione o template Web-> Web Form e informe o nome Default.aspx e clique no botão Add;
Agora abra a página Default.aspx no modo Source e a partir da ToolBox inclua os seguintes controles:
Label : ID=lblResultado
Disponha os controles conforme o leiaute da figura abaixo:
Podemos ver o código gerado no modo Source abaixo:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Aspnet_HttRequest_Urls.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Macoratti .net</h1>
<hr />
<asp:Label ID="lblResultado" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
|
No evento Load verificamos se é um postback e chamamos o método ExibirPropriedadesObjetoRequest():
Versão VB .NET:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then ExibirPropriedadesObjetoRequest() End If End Sub |
Versão C#:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ExibirPropriedadesObjetoRequest();
}
}
|
Vamos agora incluir o código abaixo referente a o método ExibirPropriedadesObjetoRequest() no arquivo code-behind Default.aspx.vb usando as propriedades da classe HttpRequest para obter diversas informações da requisição.
Código C# | Código VB .NET |
private void ExibirPropriedadesObjetoRequest()
{
lblResultado.Text = "<table cellpadding=2 border=1>";
lblResultado.Text += "<tr><td colspan=2 align=center>";
lblResultado.Text += "Caminhos e propriedades URL do HttpRequest :";
lblResultado.Text += "</td></tr>";
// caminho da aplicação
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.ApplicationPath:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.ApplicationPath + "</b>";
lblResultado.Text += "</td></tr>";
//caminho do arquivo de execução atual
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.CurrentExecutionFilePath:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.CurrentExecutionFilePath + "</b>";
lblResultado.Text += "</td></tr>";
// caminho do arquivo
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.FilePath:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.FilePath + "</b>";
lblResultado.Text += "</td></tr>";
// caminho
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Path:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Path + "</b>";
lblResultado.Text += "</td></tr>";
// info do caminho
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.PathInfo:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.PathInfo + "</b>";
lblResultado.Text += "</td></tr>";
// caminho fisico da aplicação
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.PhysicalApplicationPath:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.PhysicalApplicationPath + "</b>";
lblResultado.Text += "</td></tr>";
// raw url
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.RawUrl:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.RawUrl + "</b>";
lblResultado.Text += "</td></tr>";
// caminho absoluto
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.AbsolutePath:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.AbsolutePath + "</b>";
lblResultado.Text += "</td></tr>";
// uri absoluta
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.AbsoluteUri:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.AbsoluteUri + "</b>";
lblResultado.Text += "</td></tr>";
// fragmento
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Fragment:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.Fragment + "</b>";
lblResultado.Text += "</td></tr>";
// host
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Host:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.Host + "</b>";
lblResultado.Text += "</td></tr>";
// autoridade
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Authority:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.Authority + "</b>";
lblResultado.Text += "</td></tr>";
// caminho local
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.LocalPath:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.LocalPath + "</b>";
lblResultado.Text += "</td></tr>";
// caminho e consulta
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.PathAndQuery:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.PathAndQuery + "</b>";
lblResultado.Text += "</td></tr>";
// porta
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Port:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.Port + "</b>";
lblResultado.Text += "</td></tr>";
// consulta
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Query:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.Query + "</b>";
lblResultado.Text += "</td></tr>";
// esquema
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Scheme:";
lblResultado.Text += "</td><td>";
lblResultado.Text += "<b>" + Request.Url.Scheme + "</b>";
lblResultado.Text += "</td></tr>";
// segmentos
lblResultado.Text += "<tr><td>";
lblResultado.Text += "Request.Url.Segments:";
lblResultado.Text += "</td><td>";
string[] segments = Request.Url.Segments;
foreach (string s in segments)
lblResultado.Text += "<b>" + s + "</b><br>";
lblResultado.Text += "</td></tr>";
lblResultado.Text += "</table>";
}
|
Private Sub ExibirPropriedadesObjetoRequest()
lblResultado.Text = "<table cellpadding=2 border=1>"
lblResultado.Text += "<tr><td colspan=2 align=center>"
lblResultado.Text += "Caminhos e propriedades URL do HttpRequest :"
lblResultado.Text += "</td></tr>"
' caminho da aplicação
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.ApplicationPath:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.ApplicationPath + "</b>"
lblResultado.Text += "</td></tr>"
'caminho do arquivo de execução atual
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.CurrentExecutionFilePath:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.CurrentExecutionFilePath + "</b>"
lblResultado.Text += "</td></tr>"
' caminho do arquivo
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.FilePath:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.FilePath + "</b>"
lblResultado.Text += "</td></tr>"
' caminho
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Path:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Path + "</b>"
lblResultado.Text += "</td></tr>"
' info do caminho
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.PathInfo:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.PathInfo + "</b>"
lblResultado.Text += "</td></tr>"
' caminho fisico da aplicação
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.PhysicalApplicationPath:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.PhysicalApplicationPath + "</b>"
lblResultado.Text += "</td></tr>"
' raw url
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.RawUrl:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.RawUrl + "</b>"
lblResultado.Text += "</td></tr>"
' caminho absoluto
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.AbsolutePath:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.AbsolutePath + "</b>"
lblResultado.Text += "</td></tr>"
' uri absoluta
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.AbsoluteUri:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.AbsoluteUri + "</b>"
lblResultado.Text += "</td></tr>"
' fragmento
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Fragment:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.Fragment + "</b>"
lblResultado.Text += "</td></tr>"
' host
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Host:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.Host + "</b>"
lblResultado.Text += "</td></tr>"
' autoridade
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Authority:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.Authority + "</b>"
lblResultado.Text += "</td></tr>"
' caminho local
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.LocalPath:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.LocalPath + "</b>"
lblResultado.Text += "</td></tr>"
' caminho e consulta
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.PathAndQuery:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.PathAndQuery + "</b>"
lblResultado.Text += "</td></tr>"
' porta
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Port:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.Port + "</b>"
lblResultado.Text += "</td></tr>"
' consulta
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Query:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.Query + "</b>"
lblResultado.Text += "</td></tr>"
' esquema
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Scheme:"
lblResultado.Text += "</td><td>"
lblResultado.Text += "<b>" + Request.Url.Scheme + "</b>"
lblResultado.Text += "</td></tr>"
' segmentos
lblResultado.Text += "<tr><td>"
lblResultado.Text += "Request.Url.Segments:"
lblResultado.Text += "</td><td>"
Dim segments As String() = Request.Url.Segments
For Each s As String In segments
lblResultado.Text += (Convert.ToString("<b>") & s) + "</b><br>"
Next
lblResultado.Text += "</td></tr>"
lblResultado.Text += "</table>"
End Sub
|
Neste código estamos usando as propriedades da classe HttpRequest e montando uma tabela que será exibida no controle Label - lblResultado.
Dessa forma ao executar o projeto iremos obter o seguinte resultado:
Pegue o projeto completo aqui: Aspnet_HttRequest_Urls.zip
Porque os judeus pedem
sinal, e os gregos buscam sabedoria;
Mas nós pregamos a Cristo crucificado, que é escândalo para os judeus, e loucura
para os gregos.
Mas para os que são chamados, tanto judeus como gregos, lhes pregamos a Cristo,
poder de Deus, e sabedoria de Deus.
1 Coríntios 1:22-24
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
https://msdn.microsoft.com/pt-br/library/system.web.httprequest(v=vs.110).aspx