Uri Classe

Definição

Fornece uma representação de objeto de um identificador uniforme de recurso (URI) e fácil acesso às partes do URI.

public ref class Uri
public ref class Uri : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
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 : IEquatable<Uri>, ISpanFormattable, System.Runtime.Serialization.ISerializable
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 IEquatable<Uri>
    interface IFormattable
    interface ISpanFormattable
    interface ISerializable
type Uri = class
    interface ISerializable
type Uri = class
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
type Uri = class
    interface IFormattable
    interface ISpanFormattable
    interface IEquatable<Uri>
    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 IEquatable(Of Uri), ISerializable, ISpanFormattable
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 seguinte cria uma instância da Uri classe e usa-a para realizar um pedido GET com HttpClient.

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 excerto de código seguinte mostra valores de exemplo das várias propriedades da 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

Observações

Para mais informações sobre esta API, consulte Observações Suplementares da API para Uri.

Construtores

Name Description
Uri(SerializationInfo, StreamingContext)
Obsoleto.

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

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

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

Uri(String, UriCreationOptions)

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

Uri(String, UriKind)

Inicializa uma nova instância da Uri classe com o URI especificado. Este construtor permite-lhe especificar se a cadeia de URI é um URI relativo, URI absoluto ou indeterminado.

Uri(String)

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

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

Inicializa uma nova instância da Uri classe com base especificada e URIs relativas, com controlo explícito do escape de caracteres.

Uri(Uri, String)

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

Uri(Uri, Uri)

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

Campos

Name Description
SchemeDelimiter

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

UriSchemeData

Fornece uma representação de objeto de um identificador uniforme de recurso (URI) e fácil acesso às partes do URI.

UriSchemeFile

Especifica que o URI é um apontador para um ficheiro. Este campo é só de leitura.

UriSchemeFtp

Especifica que o URI é acedido através do Protocolo de Transferência de Ficheiros (FTP). Este campo é só de leitura.

UriSchemeFtps

Especifica que o URI é acedido através do File Transfer Protocol Secure (FTPS). Este campo é só de leitura.

UriSchemeGopher

Especifica que o URI é acedido através do protocolo Gopher. Este campo é só de leitura.

UriSchemeHttp

Especifica que o URI é acedido através do Protocolo de Transferência de Hipertexto (HTTP). Este campo é só de leitura.

UriSchemeHttps

Especifica que o URI é acedido através do Protocolo Seguro de Transferência de Hipertexto (HTTPS). Este campo é só de leitura.

UriSchemeMailto

Especifica que o URI é um endereço de email e é acedido através do Protocolo de Transporte de Correio Simples (SMTP). Este campo é só de leitura.

UriSchemeNetPipe

Especifica que o URI é acedido através do esquema NetPipe usado pela Windows Communication Foundation (WCF). Este campo é só de leitura.

UriSchemeNetTcp

Especifica que o URI é acedido através do esquema NetTcp usado pela Windows Communication Foundation (WCF). Este campo é só de leitura.

UriSchemeNews

Especifica que o URI é um grupo de notícias da Internet e é acedido através do Protocolo de Transporte de Notícias de Rede (NNTP). Este campo é só de leitura.

UriSchemeNntp

Especifica que o URI é um grupo de notícias da Internet e é acedido através do Protocolo de Transporte de Notícias de Rede (NNTP). Este campo é só de leitura.

UriSchemeSftp

Especifica que o URI é acedido através do Protocolo de Transferência de Ficheiros SSH (SFTP). Este campo é só de leitura.

UriSchemeSsh

Especifica que o URI é acedido através do protocolo Secure Socket Shell (SSH). Este campo é só de leitura.

UriSchemeTelnet

Especifica que o URI é acedido através do protocolo Telnet. Este campo é só de leitura.

UriSchemeWs

Especifica que o URI é acedido através do protocolo WebSocket (WS). Este campo é só de leitura.

UriSchemeWss

Especifica que o URI é acedido através do protocolo WebSocket Secure (WSS). Este campo é só de leitura.

Propriedades

Name Description
AbsolutePath

Obtém o percurso absoluto do URI.

AbsoluteUri

Recebe o URI absoluto.

Authority

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

DnsSafeHost

Recebe um nome de host que, depois de ser libertado se necessário, é seguro para usar na resolução de DNS.

Fragment

Recebe o fragmento do URI escapado, incluindo o caractere '#' inicial se não estiver vazio.

Host

Obtém o componente anfitrião 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, depois de ser desbloqueada se necessário, é segura para usar na resolução DNS.

IsAbsoluteUri

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

IsDefaultPort

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

IsFile

Recebe um valor que indica se o especificado Uri é um URI de ficheiro.

IsLoopback

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

IsUnc

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

LocalPath

Obtém uma representação local do sistema operativo de um nome de ficheiro.

OriginalString

Obtém a string URI original que foi passada para o Uri construtor.

PathAndQuery

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

Port

Obtém o número de porta deste URI.

Query

Recebe qualquer informação de consulta incluída no URI especificado, incluindo o caractere inicial '?' se não estiver vazio.

Scheme

Obtém o nome do esquema para este URI.

Segments

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

UserEscaped

Recebe um valor que indica se a cadeia de URI foi completamente escapada antes da Uri instância ser criada.

UserInfo

Obtém o nome de utilizador, palavra-passe ou outra informação específica do utilizador associada ao URI especificado.

Métodos

Name Description
Canonicalize()
Obsoleto.
Obsoleto.
Obsoleto.

Converte o URI armazenado internamente para a 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 este método não tem 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 toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Equals(Object)

Compara duas Uri instâncias para a igualdade.

Equals(Uri)

Compara duas Uri instâncias para a igualdade.

Escape()
Obsoleto.
Obsoleto.
Obsoleto.

Converte quaisquer caracteres inseguros ou reservados no componente path para as suas representações hexadecimais.

EscapeDataString(ReadOnlySpan<Char>)

Converte um vão para a sua representação escapada.

EscapeDataString(String)

Converte uma corda para a sua representação escapada.

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

Converte uma corda para a sua representação escapada.

EscapeUriString(String)
Obsoleto.
Obsoleto.

Converte uma cadeia de URI para a sua representação escapada.

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 Uri instância.

GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Devolve 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 carácter especificado no seu equivalente hexadecimal.

HexUnescape(String, Int32)

Converte uma representação hexadecimal especificada de um carácter para o caractere.

InitializeLifetimeService()
Obsoleto.

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

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

Indica se um carácter é inválido no nome do sistema de ficheiros.

IsBaseOf(Uri)

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

IsExcludedCharacter(Char)
Obsoleto.
Obsoleto.
Obsoleto.

Determina se a personagem especificada deve ser escapada.

IsHexDigit(Char)

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

IsHexEncoding(String, Int32)

Determina se um carácter numa cadeia é codificado hexadecimalmente.

IsReservedCharacter(Char)
Obsoleto.
Obsoleto.
Obsoleto.

Determina se o carácter especificado é um carácter reservado.

IsWellFormedOriginalString()

Indica se a corda usada para construir isto Uri estava bem formada e não requer mais fuga.

IsWellFormedUriString(String, UriKind)

Indica se a cadeia está bem formada ao tentar construir um URI com a cadeia e garante que a cadeia não precisa de mais fugas.

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

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

MakeRelativeUri(Uri)

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

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Parse()
Obsoleto.
Obsoleto.
Obsoleto.

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

ToString()

Obtém uma representação canónica de cadeias para a instância especificada Uri .

TryCreate(String, UriCreationOptions, Uri)

Cria uma nova Uri usando a instância especificada String e UriCreationOptions.

TryCreate(String, UriKind, Uri)

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

TryCreate(Uri, String, Uri)

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

TryCreate(Uri, Uri, Uri)

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

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

Tenta converter um vão para a sua representação escapada.

TryFormat(Span<Char>, Int32)

Tentativas de formatar uma representação canónica de cadeias para a Uri instância no espaço especificado.

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

Tenta converter um vão para a sua representação inevitável.

Unescape(String)
Obsoleto.
Obsoleto.
Obsoleto.

Converte a cadeia especificada substituindo quaisquer sequências de escape pela sua representação não escapada.

UnescapeDataString(ReadOnlySpan<Char>)

Converte um trecho na sua representação inevitável.

UnescapeDataString(String)

Converte uma corda para a sua representação sem escapamento.

Operadores

Name Description
Equality(Uri, Uri)

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

Inequality(Uri, Uri)

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

Implementações de Interface Explícita

Name Description
IFormattable.ToString(String, IFormatProvider)

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

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Devolve 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 fornecido de caracteres.

Aplica-se a

Segurança de Thread

Todos os membros de Uri são seguros para threads e podem ser usados simultaneamente a partir de múltiplos threads.

Ver também