Partilhar via


Classe uri

Uma implementação flexível de uris independentes do protocolo. As instâncias do URI são imutáveis. Consultar os vários campos em um uri vazio retornará cadeias de caracteres vazias. Consultar vários membros de diagnóstico em um uri vazio retornará false.

Aviso

Este tópico contém informações para o C++ REST SDK 1.0 (codinome "Casablanca").Se você estiver usando uma versão mais recente da página da Web do Codeplex Casablanca, use então a documentação local em http://casablanca.codeplex.com/documentation.

class uri;

Membros

Classes públicas

Nome

Descrição

Classe uri::components

Os vários componentes de um URI. Essa enumeração é usada para indicar que o componente URI está sendo codificado para o encode_uri_component. Isso permite que uma codificação específica seja executada. O esquema e a porta não permitem '%', portanto não precisam ser codificados.

Construtores Públicos

Nome

Descrição

Construtor uri::uri

Sobrecarregado. Cria um uri vazio

Métodos Públicos

Nome

Descrição

Método uri::authority

Cria um novo objeto uri com a mesma parte de autoridade deste, omitindo as partes de recurso e de consulta.

Método uri::decode

Decodifica uma cadeia de caracteres codificada.

Método uri::encode_data_string

Codifica uma cadeia de caracteres convertendo todos os caracteres, exceto caracteres não reservados RFC 3986 para sua representação hexadecimal.

Método uri::encode_uri

Codifica um componente do URI, de acordo com RFC 3986. Observe que se um URI completo for especificado, em vez de um componente individual do URI, todos os caracteres fora do conjunto não reservado serão de escape.

Método uri::fragment

Obtém o componente de fragmento do URI como uma cadeia de caracteres codificada.

Método uri::has_same_authority

Retorna se o outro uri tiver a mesma autoridade deste

Método uri::host

Obtém o componente de host do URI como uma cadeia de caracteres codificada.

Método uri::is_authority

Um uri de "autoridade" é um com apenas um esquema, userinfo opcional, nome de host e porta (opcional).

Método uri::is_empty

Um uri vazio não especifica componentes e serve como um valor padrão

Método uri::is_host_loopback

Um URI de loopback é aquele que se refere a um nome de host ou um endereço ip com significado apenas no computador local.

Método uri::is_host_portable

Um URI portátil é aquele com um nome de host que pode ser resolvido globalmente (usado de outro computador).

Método uri::is_host_wildcard

Um URI curinga é aquele que se refere a todos os nomes de host que resolvem no computador local (usando * ou +)

Método uri::is_path_empty

Retorna se a parte do caminho desse uri estiver vazia

Método uri::is_port_default

Método uri::path

Obtém o componente do caminho do URI como uma cadeia de caracteres codificada.

Método uri::port

Obtém o componente de porta do URI. Retorna -1 se nenhuma porta for especificada.

Método uri::query

Obtém o componente de consulta do URI como uma cadeia de caracteres codificada.

Método uri::resource

Obtém a parte de caminho, consulta e fragmento desse uri, que pode estar vazia.

Método uri::scheme

Obtém o componente de esquema do URI como uma cadeia de caracteres codificada.

Método uri::split_path

Divide um caminho em seus componentes hierárquicos.

Método uri::split_query

Divide uma consulta em seus componentes de chave-valor.

Método uri::to_string

Retorna o uri (codificado) completo como uma cadeia de caracteres.

Método uri::user_info

Obtém o componente de informações do usuário do URI como uma cadeia de caracteres codificada.

Método uri::validate

Valida uma cadeia de caracteres como um uri.

Operadores Públicos

Nome

Descrição

Operador uri::operator!=

Operador uri::operator<

Operador uri::operator==

Comentários

Essa implementação aceita uris ('https://msn.com/path') e referências relacionadas ao uri ('/path?query#frag'). Essa implementação não oferece qualquer manipulação específica do esquema – um exemplo disso seria o seguinte: 'http://path1/path'. Este é um uri válido, mas não é um uri de http válido – ou seja, ele é sintaticamente correto, mas não atende aos requisitos do esquema de http (http requer um host). Poderíamos fornecer isso permitindo uma classe de diretiva de 'esquema' conectável, que deveria fornecer recursos adicionais para validar e canonizar um uri de acordo com o esquema e deveria apresentar uma camada de segurança de tipo para uris de esquemas diferentes e portanto de semânticas diferentes. Um problema com a implementação de um recurso de uri independentemente do esquema é o da comparação de igualdade. Por exemplo, esses uris são considerados o mesmo que 'https://msn.com', 'https://msn.com:80'. Ou seja – a porta 'padrão' pode ser omitida ou explícita. Como não temos uma maneira de mapear um esquema para sua porta padrão, não temos uma maneira de saber se elas são iguais. Isso é apenas uma de uma classe de problemas relacionados ao comportamento específico do esquema.

Requisitos

Cabeçalho: base_uri.h

Namespace: web::http

Consulte também

Referência

Namespace web::http