Uri Classe

Definição

Fornece uma representação de objeto de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI.

public ref class Uri
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : System.Runtime.Serialization.ISerializable
public class Uri : ISpanFormattable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Uri : MarshalByRefObject, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
type Uri = class
    interface ISerializable
type Uri = class
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
type Uri = class
    interface IFormattable
    interface ISpanFormattable
    interface ISerializable
[<System.Serializable>]
type Uri = class
    inherit MarshalByRefObject
    interface ISerializable
[<System.Serializable>]
[<System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))>]
type Uri = class
    interface ISerializable
Public Class Uri
Public Class Uri
Implements ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
Herança
Uri
Herança
Atributos
Implementações

Exemplos

O exemplo a seguir cria uma instância da classe e a Uri usa para executar uma solicitação GET com HttpClient.

Uri^ siteUri = gcnew Uri("http://www.contoso.com/");

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient^ client = gcnew HttpClient;
HttpRequestMessage^ request = gcnew HttpRequestMessage(HttpMethod::Get, siteUri);
HttpResponseMessage^ response = client->Send(request);
Uri siteUri = new Uri("http://www.contoso.com/");

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, siteUri);
HttpResponseMessage response = client.Send(request);
let siteUri = Uri "http://www.contoso.com/"

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
use client = new HttpClient ()
use request = new HttpRequestMessage (HttpMethod.Get, siteUri)
use response = client.Send request
Dim siteUri As New Uri("http://www.contoso.com/")

' HttpClient lifecycle management best practices:
' https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
Dim client As New HttpClient()
Dim request As New HttpRequestMessage(HttpMethod.Get, siteUri)
Dim response As HttpResponseMessage = client.Send(request)

O snippet de código a seguir mostra valores de exemplo das várias propriedades na classe .

Uri uri = new Uri("https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName");

Console.WriteLine($"AbsolutePath: {uri.AbsolutePath}");
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"DnsSafeHost: {uri.DnsSafeHost}");
Console.WriteLine($"Fragment: {uri.Fragment}");
Console.WriteLine($"Host: {uri.Host}");
Console.WriteLine($"HostNameType: {uri.HostNameType}");
Console.WriteLine($"IdnHost: {uri.IdnHost}");
Console.WriteLine($"IsAbsoluteUri: {uri.IsAbsoluteUri}");
Console.WriteLine($"IsDefaultPort: {uri.IsDefaultPort}");
Console.WriteLine($"IsFile: {uri.IsFile}");
Console.WriteLine($"IsLoopback: {uri.IsLoopback}");
Console.WriteLine($"IsUnc: {uri.IsUnc}");
Console.WriteLine($"LocalPath: {uri.LocalPath}");
Console.WriteLine($"OriginalString: {uri.OriginalString}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Console.WriteLine($"Port: {uri.Port}");
Console.WriteLine($"Query: {uri.Query}");
Console.WriteLine($"Scheme: {uri.Scheme}");
Console.WriteLine($"Segments: {string.Join(", ", uri.Segments)}");
Console.WriteLine($"UserEscaped: {uri.UserEscaped}");
Console.WriteLine($"UserInfo: {uri.UserInfo}");

// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
let uri = Uri "https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName"

printfn $"AbsolutePath: {uri.AbsolutePath}"
printfn $"AbsoluteUri: {uri.AbsoluteUri}"
printfn $"DnsSafeHost: {uri.DnsSafeHost}"
printfn $"Fragment: {uri.Fragment}"
printfn $"Host: {uri.Host}"
printfn $"HostNameType: {uri.HostNameType}"
printfn $"IdnHost: {uri.IdnHost}"
printfn $"IsAbsoluteUri: {uri.IsAbsoluteUri}"
printfn $"IsDefaultPort: {uri.IsDefaultPort}"
printfn $"IsFile: {uri.IsFile}"
printfn $"IsLoopback: {uri.IsLoopback}"
printfn $"IsUnc: {uri.IsUnc}"
printfn $"LocalPath: {uri.LocalPath}"
printfn $"OriginalString: {uri.OriginalString}"
printfn $"PathAndQuery: {uri.PathAndQuery}"
printfn $"Port: {uri.Port}"
printfn $"Query: {uri.Query}"
printfn $"Scheme: {uri.Scheme}"
printfn $"""Segments: {String.Join(", ", uri.Segments)}"""
printfn $"UserEscaped: {uri.UserEscaped}"
printfn $"UserInfo: {uri.UserInfo}"

// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password

Comentários

Para obter mais informações sobre essa API, consulte Comentários da API complementar para URI.

Construtores

Uri(SerializationInfo, StreamingContext)
Obsoleto.

Inicializa uma nova instância da classe Uri das instâncias especificadas das classes SerializationInfo e StreamingContext.

Uri(String)

Inicializa uma nova instância da classe Uri com URI especificado.

Uri(String, Boolean)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe Uri com o URI especificado, com controle explícito de escape de caractere.

Uri(String, UriCreationOptions)

Inicializa uma nova instância da Uri classe com o URI especificado e adicionais UriCreationOptions.

Uri(String, UriKind)

Inicializa uma nova instância da classe Uri com URI especificado. Este construtor permite que você especifique se a cadeia de caracteres do URI é um URI relativo, um URI absoluto ou indeterminado.

Uri(Uri, String)

Inicializa uma nova instância da classe Uri com base no URI base especificado e na cadeia de caracteres do URI relativo.

Uri(Uri, String, Boolean)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe Uri baseada nos URIs de base e relativos especificados, com controle explícito de escape de caracteres.

Uri(Uri, Uri)

Inicializa uma nova instância da classe Uri com base na combinação de uma instância base de Uri especificada e uma instância de Uri relativa.

Campos

SchemeDelimiter

Especifica os caracteres que separam o esquema de protocolo de comunicação da parte do endereço do URI. Este campo é somente leitura.

UriSchemeFile

Especifica que o URI é um ponteiro para um arquivo. Este campo é somente leitura.

UriSchemeFtp

Especifica que o URI é acessado por meio do protocolo FTP. Este campo é somente leitura.

UriSchemeFtps

Especifica que o URI é acessado por meio do PROTOCOLO FTPS. Este campo é somente leitura.

UriSchemeGopher

Especifica que o URI é acessado por meio do protocolo Gopher. Este campo é somente leitura.

UriSchemeHttp

Especifica que o URI é acessado por meio do protocolo HTTP. Este campo é somente leitura.

UriSchemeHttps

Especifica que o URI é acessado por meio de HTTPS (Secure Hypertext Transfer Protocol). Este campo é somente leitura.

UriSchemeMailto

Especifica que o URI é um endereço de email e é acessado por meio do protocolo SMTP. Este campo é somente leitura.

UriSchemeNetPipe

Especifica que o URI é acessado por meio do esquema NetPipe usado pelo WCF (Windows Communication Foundation). Este campo é somente leitura.

UriSchemeNetTcp

Especifica que o URI é acessado por meio do esquema NetTcp usado pelo WCF (Windows Communication Foundation). Este campo é somente leitura.

UriSchemeNews

Especifica que o URI é um grupo de notícias da Internet e é acessado por meio do NNTP. Este campo é somente leitura.

UriSchemeNntp

Especifica que o URI é um grupo de notícias da Internet e é acessado por meio do NNTP. Este campo é somente leitura.

UriSchemeSftp

Especifica que o URI é acessado por meio do protocolo SFTP. Este campo é somente leitura.

UriSchemeSsh

Especifica que o URI é acessado por meio do protocolo SSH (Secure Socket Shell). Este campo é somente leitura.

UriSchemeTelnet

Especifica que o URI é acessado por meio do protocolo Telnet. Este campo é somente leitura.

UriSchemeWs

Especifica que o URI é acessado por meio do protocolo WebSocket (WS). Este campo é somente leitura.

UriSchemeWss

Especifica que o URI é acessado por meio do protocolo WebSocket Secure (WSS). Este campo é somente leitura.

Propriedades

AbsolutePath

Obtém o caminho absoluto do URI.

AbsoluteUri

Obtém o URI absoluto.

Authority

Obtém o nome do host do DNS (Sistema de Nomes de Domínio) ou o endereço IP e o número da porta para um servidor.

DnsSafeHost

Obtém um nome do host que, depois de não ser escapada, se necessário, é seguro para ser usado para a resolução de DNS.

Fragment

Obtém o fragmento de URI de escape, incluindo o caractere '#' à esquerda, se não estiver vazio.

Host

Obtém o componente de host desta instância.

HostNameType

Obtém o tipo do nome de host especificado no URI.

IdnHost

Obtém o Nome de Domínio Internacional compatível com RFC 3490 do host, usando Punycode conforme apropriado. Esta cadeia de caracteres, depois de não ser escapada, se necessário, é seguro para ser usado para a resolução de DNS.

IsAbsoluteUri

Obtém um valor que indica se a instância Uri é absoluta.

IsDefaultPort

Obtém um valor que indica se o valor da porta do URI é o padrão para esse esquema.

IsFile

Obtém um valor que indica se o Uri especificado é um URI de arquivo.

IsLoopback

Obtém um valor que indica se o Uri especificado faz referência ao host local.

IsUnc

Obtém um valor que indica se o Uri especificado é um caminho UNC (convenção de nomenclatura universal).

LocalPath

Obtém uma representação local do sistema operacional de um nome de arquivo.

OriginalString

Obtém a cadeia de caracteres do URI original que foi passada para o construtor Uri.

PathAndQuery

Obtém as propriedades AbsolutePath e Query separadas por um ponto de interrogação (?).

Port

Obtém o número da porta desse URI.

Query

Obtém qualquer informação de consulta incluída no URI especificado, incluindo o caractere '?' à esquerda, se não estiver vazio.

Scheme

Obtém o nome do esquema para esse URI.

Segments

Obtém uma matriz contendo os segmentos de caminho que compõem o URI especificado.

UserEscaped

Obtém um valor que indica se a cadeia de caracteres do URI sofreu escape completo antes da criação da instância Uri.

UserInfo

Obtém o nome de usuário, a senha ou outras informações específicas do usuário associado com o URI especificado.

Métodos

Canonicalize()
Obsoleto.
Obsoleto.
Obsoleto.

Converte o URI armazenado internamente em forma canônica.

CheckHostName(String)

Determina se o nome de host especificado é um nome DNS válido.

CheckSchemeName(String)

Determina se o nome do esquema especificado é válido.

CheckSecurity()
Obsoleto.
Obsoleto.
Obsoleto.

Chamar esse método não tem nenhum efeito.

Compare(Uri, Uri, UriComponents, UriFormat, StringComparison)

Compara as partes especificadas de dois URIs usando as regras de comparação especificadas.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Equals(Object)

Compara duas instâncias de Uri quanto à igualdade.

Escape()
Obsoleto.
Obsoleto.
Obsoleto.

Converte caracteres reservados não seguros no componente de caminho para suas representações de caractere hexadecimal.

EscapeDataString(ReadOnlySpan<Char>)

Fornece uma representação de objeto de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI.

EscapeDataString(String)

Converte uma cadeia de caracteres em sua representação de escape.

EscapeString(String)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Converte uma cadeia de caracteres em sua representação de escape.

EscapeUriString(String)
Obsoleto.
Obsoleto.

Converte uma cadeia de caracteres de URI para sua representação de escape.

FromHex(Char)

Obtém o valor decimal de um dígito hexadecimal.

GetComponents(UriComponents, UriFormat)

Obtém os componentes especificados da instância atual usando o escape especificado para caracteres especiais.

GetHashCode()

Obtém o código hash do URI.

GetLeftPart(UriPartial)

Obtém a parte especificada de uma instância de Uri.

GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Retorna os dados necessários para serializar a instância atual.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
HexEscape(Char)

Converte um caractere especificado em seu equivalente hexadecimal.

HexUnescape(String, Int32)

Converte uma representação hexadecimal especificada de um caractere no caractere.

InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
IsBadFileSystemCharacter(Char)
Obsoleto.
Obsoleto.
Obsoleto.

Indica se um caractere é inválido em um nome de sistema de arquivos.

IsBaseOf(Uri)

Determina se a instância Uri atual é uma base da instância Uri especificada.

IsExcludedCharacter(Char)
Obsoleto.
Obsoleto.
Obsoleto.

Determina se o caractere especificado deve ter escape.

IsHexDigit(Char)

Determina se um caractere especificado é um dígito hexadecimal válido.

IsHexEncoding(String, Int32)

Determina se um caractere em uma cadeia de caracteres é codificada em hexadecimal.

IsReservedCharacter(Char)
Obsoleto.
Obsoleto.
Obsoleto.

Determina se o caractere especificado é um caractere reservado.

IsWellFormedOriginalString()

Indica se a cadeia de caracteres usada para construir o Uri foi bem formada e não requer escape adicional.

IsWellFormedUriString(String, UriKind)

Indica se a cadeia de caracteres é bem formada pela tentativa de construir um URI com a cadeia de caracteres e garante que a cadeia de caracteres não requer mais de escape.

MakeRelative(Uri)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Determina a diferença entre duas instâncias Uri.

MakeRelativeUri(Uri)

Determina a diferença entre duas instâncias Uri.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
Parse()
Obsoleto.
Obsoleto.
Obsoleto.

Analisa o URI da instância atual para garantir que contenha todas as partes necessárias para um URI válido.

ToString()

Obtém uma representação de cadeia de caracteres canônica para a instância Uri especificada.

TryCreate(String, UriCreationOptions, Uri)

Cria um novo Uri usando a instância especificada String e UriCreationOptions.

TryCreate(String, UriKind, Uri)

Cria um novo Uri usando a instância String especificada e um UriKind.

TryCreate(Uri, String, Uri)

Cria um novo Uri usando a base especificada e as instâncias de String relativas.

TryCreate(Uri, Uri, Uri)

Cria um novo Uri usando a base especificada e as instâncias de Uri relativas.

TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

Fornece uma representação de objeto de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI.

TryFormat(Span<Char>, Int32)

Tenta formatar uma representação de cadeia de caracteres canônica para a Uri instância no intervalo especificado.

TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

Fornece uma representação de objeto de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI.

Unescape(String)
Obsoleto.
Obsoleto.
Obsoleto.

Converte a cadeia de caracteres especificada substituindo as sequências de escape por sua representação sem escape.

UnescapeDataString(ReadOnlySpan<Char>)

Fornece uma representação de objeto de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI.

UnescapeDataString(String)

Converte uma cadeia de caracteres em sua representação sem escape.

Operadores

Equality(Uri, Uri)

Determina se duas instâncias Uri têm o mesmo valor.

Inequality(Uri, Uri)

Determina se duas instâncias de Uri não têm o mesmo valor.

Implantações explícitas de interface

IFormattable.ToString(String, IFormatProvider)

Formata o valor da instância atual usando o formato especificado.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Retorna os dados necessários para serializar a instância atual.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Tenta formatar o valor da instância atual no intervalo de caracteres fornecido.

Aplica-se a

Acesso thread-safe

Todos os membros do Uri são thread-safe e podem ser usados simultaneamente de vários threads.

Confira também