Classe uri
Un'implementazione di URI flessibile e indipendente dal protocollo. Le istanze URI non sono modificabili. L'esecuzione di query su vari campi in un URI vuoto restituirà stringhe vuote. L'esecuzione di query su diversi membri diagnostici in un URI vuoto restituirà false.
Avviso
In questo argomento vengono fornite informazioni per C++ REST SDK 1.0 (nome in codice "Casablanca").Se si sta usando una versione più recente dalla pagina Web di Codeplex Casablanca, usare la documentazione locale all'indirizzo http://casablanca.codeplex.com/documentation.
class uri;
Membri
Classi pubbliche
Nome |
Descrizione |
---|---|
I vari componenti di un URI. Questa enumerazione viene usata per indicare quale componente URI viene codificato per encode_uri_component. Ciò consente di eseguire una codifica specifica. Lo schema e la porta non consentono l'uso di "%", quindi non necessitano di una codifica. |
Costruttori pubblici
Nome |
Descrizione |
---|---|
Di overload. Crea un URI vuoto |
Metodi pubblici
Nome |
Descrizione |
---|---|
Crea un nuovo oggetto URI con la stessa parte di autorità, ma omettendo le parti risorsa e query. |
|
Decodifica una stringa codificata. |
|
Codifica una stringa convertendo tutti i caratteri tranne i caratteri RFC 3986 non riservati nella relativa rappresentazione esadecimale. |
|
Codifica un componente URI in base allo standard RFC 3986. Notare che se viene specificato un URI completo invece di un singolo componente URI tutti i caratteri non presenti nel set non riservato sono preceduti da un carattere di escape. |
|
Ottenere il componente del frammento dell'URI come stringa codificata. |
|
Restituisce se l'altro URI ha la stessa autorità di quello corrente |
|
Ottenere il componente host dell'URI come stringa codificata. |
|
Un URI di "autorità" è unico con un solo schema, informazioni utente facoltative, nome host e porta (facoltativa). |
|
Un URI vuoto non specifica alcun componente e funge da valore predefinito |
|
Un URI di loopback fa riferimento a un nome host o indirizzo IP con significato solo sul computer locale. |
|
Un URI portabile ha un nome host che può essere risolto a livello globale (usato da un altro computer). |
|
Un URI di carattere jolly fa riferimento a tutti i nomi host risolti sul computer locale (usando il carattere * o +) |
|
Restituisce se la parte di percorso di questo URI è vuota |
|
Ottenere il componente del percorso dell'URI come stringa codificata. |
|
Ottenere il componente di porta dell'URI. Restituisce -1 se nessuna porta viene specificata. |
|
Ottenere il componente query dell'URI come stringa codificata. |
|
Ottiene il percorso, la query e la parte del frammento di questo URI, che può essere vuoto. |
|
Ottenere il componente di schema dell'URI come stringa codificata. |
|
Suddivide un percorso nei suoi componenti gerarchici. |
|
Suddivide una query nei suoi componenti chiave-valore. |
|
Restituisce l'URI (codificato) completo come stringa. |
|
Ottenere il componente delle informazioni utente dell'URI come stringa codificata. |
|
Convalida una stringa come URI. |
Operatori pubblici
Nome |
Descrizione |
---|---|
Note
Questa implementazione accetta sia gli URI ("https://msn.com/path") sia i riferimenti relativi all'URI ("/path?query#frag"). Questa implementazione non fornisce alcun tipo di gestione specifica dello schema: un esempio potrebbe essere il seguente: "http://path1/path". Si tratta di un URI valido, ma non è un URI HTTP valido: vale a dire che è sintatticamente corretto, ma non è conforme ai requisiti dello schema http (http richiede un host). Per ottenerne uno è sufficiente consentire una classe criterio di "schema" collegabile, che fornirebbe ulteriori capacità di convalida e conversione in formato canonico di un URI secondo lo schema e introdurrebbe un livello di indipendenza dai tipi per gli URI di schemi differenti, e di conseguenza semantiche differenti. Uno dei problemi relativi all'implementazione di una funzionalità URI indipendente dallo schema uri è il confronto di uguaglianza. Ad esempio, gli URI "https://msn.com" e "https://msn.com:80" sono considerati uguali. In altre parole, la porta "predefinita" può essere omessa o esplicita. Poiché non c'è modo di mappare uno schema alla relativa porta predefinita, non è possibile sapere se sono uguali. Questo è solo uno dei problemi riguardanti il comportamento specifico dello schema.
Requisiti
Intestazione: base_uri.h
Spazio dei nomi: web::http