Книга: C# 4.0: полное руководство
Класс Uri
Класс Uri
Как следует из табл. 26.1, метод WebRequest.Create()
существует в двух вариантах. В одном варианте он принимает идентификатор URI в виде строки. Именно этот вариант и был использован в предыдущих примерах программ. А во втором варианте этот метод принимает идентификатор URI в виде экземпляра объекта класса Uri
, определенного в пространстве имен System
. Класс Uri
инкапсулирует идентификатор URL. Используя класс Uri
, можно сформировать URI, чтобы затем передать этот идентификатор методу Create()
. Кроме того, идентификатор URI можно разделить на части. Для выполнения многих простых операций в Интернете класс Uri
малопригоден. Тем не менее он может оказаться весьма полезным в более сложных ситуациях сетевого подключения к Интернету.
В классе Uri
определяется несколько конструкторов. Ниже приведены наиболее часто используемые конструкторы этого класса.
public Uri(string uriString)
public Uri(Uri baseUri, string relativeUri)
В первой форме конструктора объект класса Uri
создается по идентификатору URI, заданному в виде строки uriString. А во второй форме конструктора он создается по относительному URI, заданному в виде строки relativeUri относительно абсолютного URI, обозначаемого в виде объекта baseUri типа Uri
. Абсолютный URI определяет полный адрес URI, а относительный URI — только путь к искомому ресурсу.
В классе Uri определяются многие поля, свойства и методы, оказывающие помощь в управлении идентификаторами URI или в получении доступа к различным частям URI. Особый интерес представляют приведенные ниже свойства.
Свойство - Описание
public string Host { get; } - Получает имя сервера
public string LocalPath { get; } - Получает локальный путь к файлу
public string PathAndQuery { get; } - Получает абсолютный путь и строку запроса
public int Port { get; } - Получает номер порта для указанного протокола. Так, для протокола HTTP номер порта равен 80
public string Query { get; } - Получает строку запроса
public string Scheme { get; } - Получает протокол
Перечисленные выше свойства полезны для разделения URI на составные части. Применение этих свойств демонстрируется в приведенном ниже примере программы.
// Пример применения свойств из класса Uri.
using System;
using System.Net;
class UriDemo {
static void Main() {
Uri sample = new Uri("http://HerbSchildt.com/somefile.txt?SomeQuery");
Console.WriteLine("Хост: " + sample.Host);
Console.WriteLine("Порт: " + sample.Port);
Console.WriteLine("Протокол: " + sample.Scheme);
Console.WriteLine("Локальный путь: 11 + sample. LocalPath") ;
Console.WriteLine("Запрос: " + sample.Query);
Console.WriteLine("Путь и запрос: " + sample.PathAndQuery);
}
}
Эта программа дает следующий результат.
Хост: herbschildt.com
Порт: 80
Протокол: http
Локальный путь: 11 + sample. LocalPath
Запрос: ?SomeQuery
Путь и запрос: /somefile.txt?SomeQuery
- Члены пространства имен System.Net
- Универсальные идентификаторы ресурсов
- Основы организации доступа к Интернету
- Обработка сетевых ошибок
- Обработка исключений
- Класс Uri
- Доступ к дополнительной информации, получаемой в ответ по протоколу HTTP
- Практический пример создания программы MiniCrawler
- Применение класса WebClient
- Интегрированная безопасность (NT Integrated Security)
- Chapter 5 Installing and Configuring VirtualCenter 2.0
- namespace-uri()
- 7.7.2. mod_security
- Azuri (Eight19): превращение солнечной энергетики в жизнеспособный бизнес
- Choosing, Configuring, and Installing the Boot Loader
- Configuring Wireless Networks
- Configuring X
- Installing and Configuring OpenOffice.org
- Capturing Screen Images
- Configuring and Managing Print Services
- Creating and Configuring Local Printers