HttpListener 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。 此类不能被继承。
public ref class HttpListener sealed : IDisposable
public sealed class HttpListener : IDisposable
type HttpListener = class
interface IDisposable
Public NotInheritable Class HttpListener
Implements IDisposable
- 继承
-
HttpListener
- 实现
示例
// 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
注解
有关此 API 的详细信息,请参阅 HttpListener 的补充 API 备注。
构造函数
HttpListener() |
初始化 HttpListener 类的新实例。 |
属性
AuthenticationSchemes |
获取或设置用于客户端身份验证的方案。 |
AuthenticationSchemeSelectorDelegate |
获取或设置一个委托,调用它来确定用于客户端身份验证的协议。 |
DefaultServiceNames |
获取由已注册前缀确定的服务提供程序名 (SPN) 的默认列表。 |
ExtendedProtectionPolicy |
获取或设置用于会话的扩展保护的 ExtendedProtectionPolicy。 |
ExtendedProtectionSelectorDelegate |
获取或设置在确定要用于每个请求的 ExtendedProtectionPolicy 时调用的委托。 |
IgnoreWriteExceptions |
获取或设置 Boolean 值,该值指定应用程序是否接收 HttpListener 向客户端发送响应时发生的异常。 |
IsListening |
获取一个值,指示 HttpListener 是否已启动。 |
IsSupported |
获取一个值,指示 HttpListener 是否可用于当前操作系统。 |
Prefixes |
获取由此 HttpListener 对象处理的统一资源标识符 (URI) 前缀。 |
Realm |
获取或设置与此 HttpListener 对象关联的领域或资源分区。 |
TimeoutManager |
此 HttpListener 实例的超时管理器。 |
UnsafeConnectionNtlmAuthentication |
获取或设置 Boolean 值,该值控制当使用 NTLM 时是否需要对使用同一传输控制协议 (TCP) 连接的其他请求进行身份验证。 |
方法
Abort() |
立刻关闭 HttpListener 对象,这样会放弃所有当前排队的请求。 |
BeginGetContext(AsyncCallback, Object) |
开始异步检索传入的请求。 |
Close() |
关闭 HttpListener。 |
EndGetContext(IAsyncResult) |
完成检索传入的客户端请求的异步操作。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetContext() |
等待传入的请求,接收到请求时返回。 |
GetContextAsync() |
等待传入请求以作为异步操作。 |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
Start() |
允许此实例接收传入的请求。 |
Stop() |
使此实例停止接收新的传入请求,并终止处理所有正在进行的请求。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
显式接口实现
IDisposable.Dispose() |
释放此 HttpListener 对象持有的资源。 |