HttpListenerRequest Classe

Definição

Descreve uma solicitação HTTP de entrada para um HttpListener objeto. Essa classe não pode ser herdada.

public ref class HttpListenerRequest sealed
public sealed class HttpListenerRequest
type HttpListenerRequest = class
Public NotInheritable Class HttpListenerRequest
Herança
HttpListenerRequest

Exemplos

O exemplo de código a seguir demonstra como receber e responder a um 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

Comentários

Caution

Recomendamos que você não use a HttpListener classe para desenvolvimento novo. HttpListener recebe apenas serviços limitados, e seu comportamento e suporte ao protocolo variam de acordo com a plataforma, pois cada plataforma usa uma implementação subjacente diferente. Por exemplo, em Windows ele é criadoHTTP.sys, enquanto no Linux e no macOS ele usa uma implementação gerenciada que não dá suporte a HTTPS e oferece um conjunto mais estreito de recursos. Em vez disso, use ASP.NET Core, que fornece um servidor HTTP totalmente compatível, multiplataforma e de alto desempenho.

Quando um cliente faz uma solicitação para um URI (Uniform Resource Identifier) manipulado por um HttpListener objeto, ele HttpListener fornece um HttpListenerContext objeto que contém informações sobre o remetente, a solicitação e a resposta que é enviada ao cliente. A HttpListenerContext.Request propriedade retorna o HttpListenerRequest objeto que descreve a solicitação.

O HttpListenerRequest objeto contém informações sobre a solicitação, como a cadeia de caracteres de solicitação HttpMethod , UserAgent a cadeia de caracteres e os dados do corpo da solicitação (consulte a InputStream propriedade).

Para responder à solicitação, você deve obter a resposta associada usando a Response propriedade.

Propriedades

Nome Description
AcceptTypes

Obtém os tipos MIME aceitos pelo cliente.

ClientCertificateError

Obtém um código de erro que identifica um problema com o X509Certificate fornecido pelo cliente.

ContentEncoding

Obtém a codificação de conteúdo que pode ser usada com os dados enviados com a solicitação.

ContentLength64

Obtém o comprimento dos dados do corpo incluídos na solicitação.

ContentType

Obtém o tipo MIME dos dados do corpo incluídos na solicitação.

Cookies

Obtém os cookies enviados com a solicitação.

HasEntityBody

Obtém um Boolean valor que indica se a solicitação tem dados do corpo associados.

Headers

Obtém a coleção de pares nome/valor de cabeçalho enviados na solicitação.

HttpMethod

Obtém o método HTTP especificado pelo cliente.

InputStream

Obtém um fluxo que contém os dados do corpo enviados pelo cliente.

IsAuthenticated

Obtém um Boolean valor que indica se o cliente que está enviando essa solicitação é autenticado.

IsLocal

Obtém um Boolean valor que indica se a solicitação é enviada do computador local.

IsSecureConnection

Obtém um Boolean valor que indica se a conexão TCP usada para enviar a solicitação está usando o protocolo SSL (Secure Sockets Layer).

IsWebSocketRequest

Obtém um Boolean valor que indica se a conexão TCP foi uma solicitação WebSocket.

KeepAlive

Obtém um Boolean valor que indica se o cliente solicita uma conexão persistente.

LocalEndPoint

Obtém o endereço IP do servidor e o número da porta para o qual a solicitação é direcionada.

ProtocolVersion

Obtém a versão HTTP usada pelo cliente solicitante.

QueryString

Obtém a cadeia de caracteres de consulta incluída na solicitação.

RawUrl

Obtém as informações de URL (sem o host e a porta) solicitadas pelo cliente.

RemoteEndPoint

Obtém o endereço IP do cliente e o número da porta do qual a solicitação se originou.

RequestTraceIdentifier

Obtém o identificador de solicitação da solicitação HTTP de entrada.

ServiceName

Obtém o SPN (Nome do Provedor de Serviço) que o cliente enviou na solicitação.

TransportContext

Obtém a TransportContext solicitação do cliente.

Url

Obtém o Uri objeto solicitado pelo cliente.

UrlReferrer

Obtém o URI (Uniform Resource Identifier) do recurso que encaminhou o cliente para o servidor.

UserAgent

Obtém o agente de usuário apresentado pelo cliente.

UserHostAddress

Obtém o endereço IP do servidor e o número da porta para o qual a solicitação é direcionada.

UserHostName

Obtém o nome DNS e, se fornecido, o número da porta especificado pelo cliente.

UserLanguages

Obtém os idiomas naturais que são preferenciais para a resposta.

Métodos

Nome Description
BeginGetClientCertificate(AsyncCallback, Object)

Inicia uma solicitação assíncrona para o certificado X.509 v.3 do cliente.

EndGetClientCertificate(IAsyncResult)

Encerra uma solicitação assíncrona para o certificado X.509 v.3 do cliente.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetClientCertificate()

Recupera o certificado X.509 v.3 do cliente.

GetClientCertificateAsync()

Recupera o certificado X.509 v.3 do cliente como uma operação assíncrona.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também