C# - Usando classes para a programação com a web (.NET Core) - II


Hoje vamos continar a apresentar algumas classes que facilitam a programação para web na linguagem C#.


Continuando a primeira parte do artigo vamos tratar da classe UriBuilder da linguagem C# na .NET Core.

 

 

A classe UriBuilder fornece um construtor personalizado para URIs (Uniform Resource Identifiers) e modifica URIs para a classe Uri.

 

Esta classe fornece uma maneira conveniente de modificar o conteúdo de uma instância Uri sem criar uma nova instância de Uri para cada modificação, sendo que suas propriedades fornecem acesso de leitura/gravação para as propriedades somente leitura de forma que elas podem ser modificadas.

 

No exemplo a seguir vamos construir um simples endereço HTTP com scheme , host e path, e, a seguir vamos estender o endereço para uma URi mais complexa com número da porta, query string, username e password:

 

using System;
using static System.Console;
namespace CShp_UriBuilder
{
    class Program
    {
        static void Main(string[] args)
        {
            UriBuilder uriBuilder = new UriBuilder();
            uriBuilder.Scheme = "http";
            uriBuilder.Host = "macoratti.net";
            uriBuilder.Path = "sistema";
            Uri uri = uriBuilder.Uri;
            WriteLine($"A Uri é {uri}");
            uriBuilder.Port = 8089;
            uriBuilder.UserName = "macoratti";
            uriBuilder.Password = "numsey";
            uriBuilder.Query = "search=br";
            Uri uri2 = uriBuilder.Uri;
            WriteLine($"A Uri é {uri2}");
            ReadLine();
        }
    }
}


Executando o projeto teremos o resultado abaixo:

 


Dessa forma construir um URI via código pode ser um desafio em montar corretamente todas as instâncias. Usar a classe UriBuilder pode ajudar a simplificar o trabalho.

 

Por exemplo, vamos supor que você precisa montar a seguinte URI:

 

http://user:password@localhost:8080/www.abc.com/homepagehtm?item=1233;html=<h1>Heading</h1>#stuf

 

A primeira coisa a fazer é compreender o layout da Uri HTTP que para o exemplo  é:

 

[scheme]://[user]:[password]@[host/authority]:[port]/[path];[params]?[query string]#[fragment]

 

É bem possível que a informação que você precisa não contenha todas as partes da Uri.


A classe UriBuilder permite que o código defina propriedades para cada um dos componentes da URI.

 

        static void Main(string[] args)
        {
            UriBuilder ubf = new  UriBuilder();
            ubf.Scheme = "http";
            ubf.UserName = "user";
            ubf.Password = "password";
            ubf.Host = "localhost";
            ubf.Port = 8080;
            ubf.Path = "www.abc.com/home page.htm";
            ubf.Query = "item=1233";
            ubf.Query += ";html=<h1>heading</h1>";
            ubf.Fragment = "stuff";
            WriteLine($"Uri absoluta Composta: {ubf.Uri.AbsoluteUri}\n");
            WriteLine($"Uri composta         : {ubf.ToString()}\n");
            ReadLine();
        }

 

O resultado obtido pode ser visto na figura a seguir:

 

 

Na próxima parte do artigo vamos tratar da classe IPAddress.
 

"A luz semeia-se para o justo, e a alegria para os retos de coração."
Salmos 97:11

 

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:


José Carlos Macoratti