HttpListenerRequest 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述传入 HttpListener 对象的 HTTP 请求。 此类不能被继承。
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 包含有关请求的信息,例如请求 HttpMethod 字符串、 UserAgent 字符串和请求正文数据, (查看 InputStream 属性) 。
若要回复请求,必须使用 属性获取关联的响应 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 v.3 证书的异步请求。 |
EndGetClientCertificate(IAsyncResult) |
结束对客户端的 X.509 v.3 证书的异步请求。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetClientCertificate() |
检索客户端的 X.509 v.3 证书。 |
GetClientCertificateAsync() |
以异步操作检索客户端的 X.509 v.3 证书。 |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |