uri-Klasse
Eine flexible, protokollunabhängige URI-Implementierung. URI-Instanzen sind unveränderlich. Beim Abfragen der verschiedenen Felder auf einen leeren URI werden leere Zeichenfolgen zurückgegeben. Beim Abfragen verschiedener Diagnosemember auf einen leeren URI wird "false" zurückgegeben.
Warnung
Dieses Thema enthält Informationen für das C++ REST SDK 1.0 (Codename "Casablanca").Wenn Sie eine neuere Version von der Webseite "Codeplex Casablanca" verwenden, dann verwenden Sie die lokale Dokumentation unter http://casablanca.codeplex.com/documentation.
class uri;
Mitglieder
Öffentliche Klassen
Name |
Beschreibung |
---|---|
Die verschiedenen Komponenten eines URI. Diese Enumeration wird verwendet, um anzugeben, welche URI-Komponente in der "encode_uri_component" codiert ist. Dies ermöglicht eine spezifische Codierung. Schema und Port lassen '%' nicht zu und müssen daher nicht codiert werden. |
Öffentliche Konstruktoren
Name |
Beschreibung |
---|---|
Überladen. Erstellt einen leeren URI. |
Öffentliche Methoden
Name |
Beschreibung |
---|---|
Erstellt ein neues URI-Objekt mit demselben authority-Teil wie bei diesem, wobei die resource- und query-Teile weggelassen werden. |
|
Decodiert eine codierte Zeichenfolge. |
|
Codiert eine Zeichenfolge durch Konvertieren aller Zeichen mit Ausnahme der gemäß RFC 3986 nicht reservierten Zeichen in die entsprechende hexadezimale Darstellung. |
|
Codiert eine URI-Komponente gemäß RFC 3986. Wenn ein vollständiger URI statt einer einzelnen URI-Komponente angegeben wird, werden alle Zeichen, die sich nicht im unreservierten Satz befinden, mit Escapezeichen versehen. |
|
Ruft die Fragmentkomponente des URI als codierte Zeichenfolge ab. |
|
Gibt zurück, ob der andere URI dieselbe "authority" hat wie dieser. |
|
Ruft die Hostkomponente des URI als codierte Zeichenfolge ab. |
|
Ein "authority"-URI ist ein URI mit einem Schema, einer optionalen Benutzerinfo, einem Hostnamen und einem (optionalen) Port. |
|
Ein leerer URI gibt keine Komponenten an und dient als Standardwert. |
|
Ein Loopback-URI ist ein URI, der auf einen Hostnamen oder eine IP-Adresse verweist, der bzw. die nur auf dem lokalen Computer gültig ist. |
|
Ein portabler URI ist ein URI mit einem Hostnamen, der global aufgelöst werden kann (auch auf einem anderen Computer). |
|
Ein Platzhalter-URI ist ein URI, der auf alle Hostnamen verweist, die für den lokalen Computer gelten (verwendet wird * oder +). |
|
Gibt zurück, ob der path-Teil dieses URI leer ist. |
|
Ruft die Pfadkomponente des URI als codierte Zeichenfolge ab. |
|
Ruft die Portkomponente des URI ab. Gibt –1 zurück, wenn kein Port angegeben ist. |
|
Ruft die Abfragekomponente des URI als codierte Zeichenfolge ab. |
|
Ruft den path-, query- und fragment-Teil dieses URI ab, der möglicherweise leer ist. |
|
Ruft die Schemakomponente des URI als codierte Zeichenfolge ab. |
|
Teilt einen Pfad in seine hierarchischen Komponenten auf. |
|
Teilt eine Abfrage in ihre Schlüssel/Wert-Komponenten auf. |
|
Gibt den vollständigen (codierten) URI als Zeichenfolge zurück. |
|
Ruft die Benutzerinformationskomponente des URI als codierte Zeichenfolge ab. |
|
Überprüft eine Zeichenfolge als URI. |
Öffentliche Operatoren
Name |
Beschreibung |
---|---|
Hinweise
Diese Implementierung akzeptiert URIs ('https://msn.com/path') und relative URI-Verweise ('/path?query#frag'). Diese Implementierung bietet keine schemaspezifische Verarbeitung – ein Beispiel hierfür wäre 'http://path1/path'. Dies ist ein gültiger URI, aber kein gültiger HTTP-URI – d h., er ist syntaktisch korrekt, entspricht jedoch nicht den Anforderungen des HTTP-Schemas (http erfordert einen Host). Wir könnten dies ermöglichen, indem wir eine austauschbare 'Schema'-Richtlinienklasse bereitstellen, die zusätzliche Funktionen zum Überprüfen und Kanonisieren eines URI entsprechend dem Schema bereitstellen würde und die eine Typsicherheit für URIs unterschiedlicher Schemas und somit unterschiedlicher Semantiken bieten würde. Ein Problem beim Implementieren einer schemaunabhängigen URI-Funktion ist jedoch die Prüfung auf Gleichheit. Zum Beispiel gelten diese URIs als gleich: 'https://msn.com', 'https://msn.com:80'. Der 'standardmäßige' Port kann also entweder weggelassen oder genannt werden. Da wir keine Möglichkeit haben, ein Schema seinem Standardport zuzuordnen, haben wir auch keine Möglichkeit zu wissen, ob sie gleich sind. Dies ist nur ein Problem beim schemaspezifischen Verhalten.
Anforderungen
Header: base_uri.h
Namespace: web::http