Compartilhar via


Uri Classe

Definição

Define um objeto que representa um valor de URI (Uniform Resource Identifier) e o analisa em componentes. O objeto Uri é usado por muitas outras APIs Windows Runtime que não estão necessariamente restritas a cenários de navegador da Web.

.NET Ao programar com o .NET, esse tipo fica oculto e os desenvolvedores devem usar System.Uri. Consulte Observações.

public ref class Uri sealed : IStringable
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IUriRuntimeClassFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Uri final : IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IUriRuntimeClassFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class Uri final : IStringable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IUriRuntimeClassFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Uri : IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IUriRuntimeClassFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Uri : IStringable
function Uri(baseUri, relativeUri)
Public NotInheritable Class Uri
Implements IStringable
Herança
Object Platform::Object IInspectable Uri
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Este exemplo cria um objeto Uri que representa um URI (Uniform Resource Identifier) que está usando o protocolo http para acessar um site.

// The URI string
var uriToLaunch = "http://www.bing.com";

// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriToLaunch);
// The URI string.
std::wstring uriToLaunch{ L"http://www.bing.com" };

// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriToLaunch };
// The URI string
var uriToLaunch = L"http://www.bing.com";

// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriToLaunch);

Este exemplo cria um Uri que usa o protocolo ms-appx para acessar um arquivo de imagem no pacote do aplicativo.

// The URI string
var uriImage = "ms-appx:///images/SecondaryTileDefault-sdk.png";

// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriImage);
// The URI string.
std::wstring uriImage{ L"ms-appx:///images/SecondaryTileDefault-sdk.png" };

// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriImage };
// The URI string
var uriImage = ;

// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriImage);

Este exemplo cria um Uri que usa o protocolo ms-appdata para acessar um arquivo no repositório de dados do aplicativo local para seu aplicativo.

// The URI string
var uriFile = "ms-appdata:///local/file.ext";

// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriFile);
// The URI string.
std::wstring uriFile{ L"ms-appdata:///local/file.ext" };

// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriFile };
// The URI string
var uriFile = "ms-appdata:///local/file.ext";

// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriFile);

Comentários

Importante

Ao programar com o .NET, essa classe fica oculta e os desenvolvedores devem usar a classe System.Uri , que usa regras RFC 3987 para codificar e decodificar o URI (Uniform Resource Identifier). A classe Windows.Foundation.Uri não codifica por cento caracteres não ASCII no URI (Uniform Resource Identifier), em que o esquema se refere a um caminho de arquivo do Windows (como ms-appx:). O Windows.Foundation.Uri também interpreta a codificação por porcentagem usando a página de código atual do usuário.

Os membros disponíveis do System.Uri são semelhantes, mas diferentes dos membros do Windows.Foundation.Uri, e alguns dos comportamentos básicos descritos neste tópico são diferentes. Para obter mais informações sobre as diferenças de codificação e quais membros estão disponíveis, consulte System.Uri (particularmente os Comentários).

Aqui está um detalhamento das partes de um exemplo de URI (Uniform Resource Identifier):

scheme://username:password@host:port/path.extensão? Consulta#Fragmento

Por exemplo:

http://msdn.microsoft.com/library/windows/apps/windows.foundation.uri.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1

Neste exemplo:

  • esquema é http
  • host é msdn.microsoft.com
  • domain is microsoft.com (um subconjunto de host)
  • a extensão é aspx
  • a consulta é cs-save-lang=1&cs-lang=cpp
  • fragmento é code-snippet-1

Observação

username:password@ antes do host são relevantes principalmente para o URI (Uniform Resource Identifier) do PROTOCOLO DE TRANSFERÊNCIA de Arquivo (FTP). AS URIs do PROTOCOLO FTP (Protocolo de Transferência de Arquivo) têm suporte limitado em Windows Runtime; consulte "Como transferir dados em segundo plano" (HTML ou XAML).

Importante

Nem todos os esquemas possíveis são utilizáveis por um aplicativo Windows Runtime. Notavelmente, o esquema file: é bloqueado. É possível criar um objeto Uri que usa esquemas que um aplicativo Windows Runtime não dá suporte e você é bloqueado quando tenta aplicar esse Uri como um valor de entrada para uma chamada à API, não ao criar o objeto.

Esquemas de URI específicos de um aplicativo de Windows Runtime

Windows Runtime tem vários esquemas exclusivos para um aplicativo Windows Runtime e eles se referem a ativos que fazem parte do aplicativo. Geralmente, esses esquemas são o que você pode usar em vez do arquivo: esquema, para se referir a arquivos empacotados e outros ativos que você incluiu como parte do pacote do aplicativo ou ativos que, de outra forma, estão associados a um aplicativo instalado:

Cada um desses esquemas ignora muitas das partes componentes de um URI (Uniform Resource Identifier) destinado a outros esquemas (por exemplo, Consulta e Fragmento). Além disso, determinados componentes são explicitamente não permitidos e fazem com que o valor de Uri usando esses esquemas seja tratado como uma entrada inválida (por exemplo , valores de Nome de Usuário e Senha em um esquema ms-appx: Uri invalidará um Uri). Para obter mais informações, consulte Esquemas de URI.

Na maioria dos casos, você usa esses esquemas com três barras (exemplo: ms-appx:///page.html), que faz referência à raiz do aplicativo atual, usando o aplicativo atual como autoridade. Usos com duas barras são possíveis, mas podem exigir a especificação explícita do nome da autoridade. Os usos com duas barras podem se referir a uma dependência de pacote como a autoridade ou podem se referir a locais relativos dentro do aplicativo. Para obter mais informações, consulte Esquemas de URI.

URIs absolutas e relativas

Em um nível de código, o Windows Runtime não dá suporte ao URI (Uniform Resource Identifier) relativo. Todos os objetos Uri criados devem representar um URI (Uniform Resource Identifier) absoluto. Os esquemas listados na seção anterior são, na verdade, URI (Uniform Resource Identifier), porque o host e a autoridade estão implícitos para cada esquema e o restante do caminho é avaliado sob essa autoridade.

Iniciando um aplicativo por esquema de URI

O esquema URI (Uniform Resource Identifier) de um valor Uri pode ser usado para iniciar outros aplicativos associados a esse esquema específico. Para obter mais informações, consulte Iniciar o aplicativo padrão para um URI).

Construtores

Uri(String)

Inicializa um novo objeto Uri da cadeia de caracteres URI (Uniform Resource Identifier) especificada. Inicializar o Uri também analisa a cadeia de caracteres e preenche as propriedades de Uri que representam componentes do URI (Uniform Resource Identifier).

Uri(String, String)

Inicializa um novo Uri combinando um URI (Uniform Resource Identifier) base e um URI (Uniform Resource Identifier) relativo. Inicializar o Uri também analisa a cadeia de caracteres combinada e preenche as propriedades Uri que representam componentes do URI (Uniform Resource Identifier).

Propriedades

AbsoluteCanonicalUri

Obtém uma representação totalmente canônica em conformidade com RFC do URI atual.

AbsoluteUri

Obtém todo o URI não canônico (não é canônico porque pode realmente ser um IRI, de acordo com o comportamento de codificação Windows.Foundation.Uri ; consulte Comentários.).

DisplayIri

Obtém os caracteres unicode decodificados que compõem o URI atual.

DisplayUri

Obtém uma representação do URI (Uniform Resource Identifier) que pode ser usado para fins de exibição.

Domain

Obtém o componente de nome de domínio, incluindo o domínio de nível superior, de um URI (Uniform Resource Identifier).

Extension

Obtém a extensão de nome de arquivo do recurso referenciado no Uri.

Fragment

Obtém o texto após um marcador de fragmento (#), incluindo o próprio marcador de fragmento.

Host

Obtém o nome de domínio totalmente qualificado.

Password

Obtém o componente de senha do URI (Uniform Resource Identifier) como armazenado nesta instância de Uri .

Path

Obtém o caminho e o componente de nome do recurso do URI (Uniform Resource Identifier) conforme armazenado nesta instância de Uri .

Port

Obtém o componente número da porta do URI (Uniform Resource Identifier) como armazenado nesta instância de Uri

Query

Obtém o componente de cadeia de caracteres de consulta do URI (Uniform Resource Identifier) como armazenado nesta instância de Uri .

QueryParsed

Obtém uma cadeia de caracteres de consulta URI (Uniform Resource Identifier) analisada.

RawUri

Obtém toda a cadeia de caracteres URI (Uniform Resource Identifier) original, conforme usado para construir esse objeto Uri , antes da análise e sem nenhuma codificação aplicada.

SchemeName

Obtém o componente de nome do esquema de protocolo do URI (Uniform Resource Identifier) conforme armazenado nesta instância de Uri

Suspicious

Obtém um valor que indica se a análise determinou que o URI (Uniform Resource Identifier) não está bem formado.

UserName

Obtém o componente de nome de usuário do URI (Uniform Resource Identifier) conforme armazenado nesta instância de Uri .

Métodos

CombineUri(String)

Adiciona o URI (Uniform Resource Identifier) especificado ao Uri atual.

Equals(Uri)

Determina se o objeto Uri especificado é igual ao objeto Uri atual.

EscapeComponent(String)

Converte uma cadeia de caracteres URI (Uniform Resource Identifier) em sua representação de escape.

ToString()

Obtém uma representação de cadeia de caracteres canônica para o Uri atual.

UnescapeComponent(String)

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

Aplica-se a

Confira também