uHttpServer存储库中的文档没有用于请求处理的完整示例。
我正在尝试使用uHttpServer.HttpServer实例以任意数据答复http请求。
这是我通过查看示例解决方案得出的。
Dim hs As New uhttpsharp.HttpServer(New uhttpsharp.RequestProviders.HttpRequestProvider())
hs.Use(New uhttpsharp.Listeners.TcpListenerAdapter(New System.Net.Sockets.TcpListener(Net.IPAddress.Any, 12345)))
hs.Use(Function(context, nxt)
Dim newBody = $"You asked for: {context.Request.Uri}"
context.Response = New HttpResponse(HttpResponseCode.Ok, newBody, False)
Return next()
End Function)
hs.Start()
Console.ReadLine()
hs.Dispose()
现在的问题是,通过使用拦截代理进行检查,请求将永远保持待处理状态。
答案 0 :(得分:0)
我最终弄清楚了。由于我认为这可能对其他人有用,因此将其放在此处。由于请求处理的实现方式,该库期望完成的任务(可用于Task.Factory.GetCompleted
),以便正确关闭与客户端的连接。
Dim hs As New uhttpsharp.HttpServer(New uhttpsharp.RequestProviders.HttpRequestProvider())
hs.Use(New uhttpsharp.Listeners.TcpListenerAdapter(New System.Net.Sockets.TcpListener(Net.IPAddress.Any, 12345)))
hs.Use(Function(context, nxt)
Dim newBody = $"You asked for: {context.Request.Uri}"
context.Response = New HttpResponse(HttpResponseCode.Ok, newBody, False)
Return Task.Factory.GetCompleted()
End Function)
hs.Start()
Console.ReadLine()
hs.Dispose()