HttpListenerRequest Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Описывает входящие HTTP-запросы к объекту HttpListener . Этот класс не может быть унаследован.
public ref class HttpListenerRequest sealed
public sealed class HttpListenerRequest
type HttpListenerRequest = class
Public NotInheritable Class HttpListenerRequest
- Наследование
-
HttpListenerRequest
Примеры
В следующем примере кода показано, как получать и реагировать на HttpListenerRequestних.
// This example requires the System and System.Net namespaces.
public static void SimpleListenerExample(string[] prefixes)
{
if (!HttpListener.IsSupported)
{
Console.WriteLine ("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
return;
}
// URI prefixes are required,
// for example "http://contoso.com:8080/index/".
if (prefixes == null || prefixes.Length == 0)
throw new ArgumentException("prefixes");
// Create a listener.
HttpListener listener = new HttpListener();
// Add the prefixes.
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
Console.WriteLine("Listening...");
// Note: The GetContext method blocks while waiting for a request.
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Obtain a response object.
HttpListenerResponse response = context.Response;
// Construct a response.
string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
// Get a response stream and write the response to it.
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer,0,buffer.Length);
// You must close the output stream.
output.Close();
listener.Stop();
}
Public Shared Sub SimpleListenerExample(prefixes As String())
If Not HttpListener.IsSupported Then
Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.")
Return
End If
' URI prefixes are required,
' for example "http://contoso.com:8080/index/".
If prefixes Is Nothing Or prefixes.Length = 0 Then
Throw New ArgumentException("prefixes")
End If
' Create a listener
Dim listener = New HttpListener()
For Each s As String In prefixes
listener.Prefixes.Add(s)
Next
listener.Start()
Console.WriteLine("Listening...")
' Note: The GetContext method blocks while waiting for a request.
Dim context As HttpListenerContext = listener.GetContext()
Console.WriteLine("Listening...")
' Obtain a response object
Dim request As HttpListenerRequest = context.Request
' Construct a response.
Dim response As HttpListenerResponse = context.Response
Dim responseString As String = "<HTML><BODY> Hello world!</BODY></HTML>"
Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
' Get a response stream and write the response to it.
response.ContentLength64 = buffer.Length
Dim output As System.IO.Stream = response.OutputStream
output.Write(buffer, 0, buffer.Length)
'You must close the output stream.
output.Close()
listener.Stop()
End Sub
Комментарии
Когда клиент отправляет запрос на универсальный идентификатор ресурса (URI), обрабатываемый HttpListener объектом, HttpListener предоставляет HttpListenerContext объект, содержащий сведения об отправителе, запросе и ответе, отправляемом клиенту. Свойство HttpListenerContext.Request возвращает HttpListenerRequest объект, описывающий запрос.
Объект HttpListenerRequest содержит сведения о запросе, например строке запроса, UserAgent строке и тексте InputStream запроса HttpMethod (см. свойство).
Чтобы ответить на запрос, необходимо получить связанный ответ с помощью Response свойства.
Свойства
| Имя | Описание |
|---|---|
| AcceptTypes |
Возвращает типы MIME, принятые клиентом. |
| ClientCertificateError |
Возвращает код ошибки, определяющий проблему с X509Certificate предоставленным клиентом. |
| ContentEncoding |
Возвращает кодировку содержимого, которую можно использовать с данными, отправляемыми с запросом. |
| ContentLength64 |
Возвращает длину данных тела, включенных в запрос. |
| ContentType |
Возвращает тип MIME данных тела, включенных в запрос. |
| Cookies |
Возвращает файлы cookie, отправленные с запросом. |
| HasEntityBody |
Boolean Возвращает значение, указывающее, имеет ли запрос связанные данные тела. |
| Headers |
Возвращает коллекцию пар "имя-значение заголовка", отправленных в запросе. |
| HttpMethod |
Возвращает метод HTTP, указанный клиентом. |
| InputStream |
Возвращает поток, содержащий данные тела, отправленные клиентом. |
| IsAuthenticated |
Boolean Возвращает значение, указывающее, выполняется ли проверка подлинности клиента, отправляющего этот запрос. |
| IsLocal |
Boolean Возвращает значение, указывающее, отправляется ли запрос с локального компьютера. |
| IsSecureConnection |
Boolean Возвращает значение, указывающее, используется ли TCP-подключение, используемое для отправки запроса, с помощью протокола SSL. |
| IsWebSocketRequest |
Boolean Возвращает значение, указывающее, был ли TCP-подключение запросом WebSocket. |
| KeepAlive |
Boolean Возвращает значение, указывающее, запрашивает ли клиент постоянное подключение. |
| LocalEndPoint |
Возвращает IP-адрес сервера и номер порта, к которому направляется запрос. |
| ProtocolVersion |
Возвращает версию HTTP, используемую клиентом запроса. |
| QueryString |
Возвращает строку запроса, включенную в запрос. |
| RawUrl |
Получает сведения о URL-адресе (без узла и порта), запрошенного клиентом. |
| RemoteEndPoint |
Возвращает IP-адрес клиента и номер порта, из которого был получен запрос. |
| RequestTraceIdentifier |
Возвращает идентификатор запроса входящего HTTP-запроса. |
| ServiceName |
Возвращает имя поставщика услуг (SPN), отправленное клиентом по запросу. |
| TransportContext |
TransportContext Возвращает запрос клиента. |
| Url |
Возвращает объект, запрошенный Uri клиентом. |
| UrlReferrer |
Возвращает универсальный идентификатор ресурса (URI) ресурса, который ссылался на клиент на сервер. |
| UserAgent |
Возвращает агент пользователя, представленный клиентом. |
| UserHostAddress |
Возвращает IP-адрес сервера и номер порта, к которому направляется запрос. |
| UserHostName |
Возвращает DNS-имя и, если указано, номер порта, указанный клиентом. |
| UserLanguages |
Возвращает естественные языки, предпочитаемые для ответа. |
Методы
| Имя | Описание |
|---|---|
| BeginGetClientCertificate(AsyncCallback, Object) |
Начинает асинхронный запрос на сертификат X.509 версии 3 клиента. |
| EndGetClientCertificate(IAsyncResult) |
Завершает асинхронный запрос на сертификат X.509 версии 3 клиента. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetClientCertificate() |
Извлекает сертификат X.509 версии 3 клиента. |
| GetClientCertificateAsync() |
Извлекает сертификат X.509 версии 3 клиента в виде асинхронной операции. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |