HttpListener.EndGetContext(IAsyncResult) Метод
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает асинхронную операцию получения входящего клиентского запроса.
public:
System::Net::HttpListenerContext ^ EndGetContext(IAsyncResult ^ asyncResult);
public System.Net.HttpListenerContext EndGetContext (IAsyncResult asyncResult);
member this.EndGetContext : IAsyncResult -> System.Net.HttpListenerContext
Public Function EndGetContext (asyncResult As IAsyncResult) As HttpListenerContext
- asyncResult
- IAsyncResult
Объект IAsyncResult, который был получен при запуске асинхронной операции.
Объект HttpListenerContext, представляющий клиентский запрос.
Значение параметра asyncResult
не получено вызовом метода BeginGetContext(AsyncCallback, Object).
asyncResult
имеет значение null
.
Вызов функции Win32 завершился с ошибкой. Проверьте свойство исключения ErrorCode, чтобы определить причину исключения.
Метод EndGetContext(IAsyncResult) уже был вызван для указанного объекта asyncResult
.
Данный объект закрыт.
В следующем примере кода показана реализация метода обратного вызова, который вызывает EndGetContext метод .
public static void ListenerCallback(IAsyncResult result)
{
HttpListener listener = (HttpListener) result.AsyncState;
// Call EndGetContext to complete the asynchronous operation.
HttpListenerContext context = listener.EndGetContext(result);
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();
}
Public Shared Sub ListenerCallback(ByVal result As IAsyncResult)
Dim listener As HttpListener = CType(result.AsyncState, HttpListener)
' Call EndGetContext to complete the asynchronous operation.
Dim context As HttpListenerContext = listener.EndGetContext(result)
Dim request As HttpListenerRequest = context.Request
' Obtain a response object.
Dim response As HttpListenerResponse = context.Response
' Construct a 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()
End Sub
Метод EndGetContext вызывается , как правило, в определяемом приложением методе обратного вызова, вызываемом делегатом, для получения HttpListenerContext объекта, содержащего входящий запрос клиента и связанный с ним ответ. Этот метод завершает операцию, запущенную ранее путем вызова BeginGetContext метода . Если операция не завершена, этот метод блокируется до тех пор, пока не завершится.
Поскольку для вызова EndGetContext метода требуется HttpListener объект , этот объект обычно передается в метод обратного вызова с помощью объекта состояния, переданного BeginGetContext в метод . Этот объект состояния можно получить с помощью AsyncState свойства asyncResult
объекта .
Подробные сведения об использовании асинхронной модели программирования см. в разделе Асинхронный вызов синхронных методов.
Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в .NET Framework.
Продукт | Версии |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: