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 |
---|---|
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 |
---|---|
Sobrecarregado. Cria um uri vazio |
Métodos Públicos
Nome |
Descrição |
---|---|
Cria um novo objeto uri com a mesma parte de autoridade deste, omitindo as partes de recurso e de consulta. |
|
Decodifica uma cadeia de caracteres codificada. |
|
Codifica uma cadeia de caracteres convertendo todos os caracteres, exceto caracteres não reservados RFC 3986 para sua representação hexadecimal. |
|
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. |
|
Obtém o componente de fragmento do URI como uma cadeia de caracteres codificada. |
|
Retorna se o outro uri tiver a mesma autoridade deste |
|
Obtém o componente de host do URI como uma cadeia de caracteres codificada. |
|
Um uri de "autoridade" é um com apenas um esquema, userinfo opcional, nome de host e porta (opcional). |
|
Um uri vazio não especifica componentes e serve como um valor padrão |
|
Um URI de loopback é aquele que se refere a um nome de host ou um endereço ip com significado apenas no computador local. |
|
Um URI portátil é aquele com um nome de host que pode ser resolvido globalmente (usado de outro computador). |
|
Um URI curinga é aquele que se refere a todos os nomes de host que resolvem no computador local (usando * ou +) |
|
Retorna se a parte do caminho desse uri estiver vazia |
|
Obtém o componente do caminho do URI como uma cadeia de caracteres codificada. |
|
Obtém o componente de porta do URI. Retorna -1 se nenhuma porta for especificada. |
|
Obtém o componente de consulta do URI como uma cadeia de caracteres codificada. |
|
Obtém a parte de caminho, consulta e fragmento desse uri, que pode estar vazia. |
|
Obtém o componente de esquema do URI como uma cadeia de caracteres codificada. |
|
Divide um caminho em seus componentes hierárquicos. |
|
Divide uma consulta em seus componentes de chave-valor. |
|
Retorna o uri (codificado) completo como uma cadeia de caracteres. |
|
Obtém o componente de informações do usuário do URI como uma cadeia de caracteres codificada. |
|
Valida uma cadeia de caracteres como um uri. |
Operadores Públicos
Nome |
Descrição |
---|---|
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