C# HTTP 请求解析器

标签 c# .net http

<分区>

Possible Duplicate:
Converting Raw HTTP Request into HTTPWebRequest Object

我有一个用 C# 编写的自定义 HTTP 服务器,它为我提供原始 HTTP 请求...

GET /ACTION=TEST HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

.NET Framework 中是否有我可以用来解析它的东西,还是我必须手动完成?

干杯

最佳答案

查看 HttpMachine - Kayak 的一个组成部分dotNET 的 HTTP 服务器。 HttpMachine 是一个回调驱动的 HTTP 解析器。

为了满足您的胃口,这里是 IHttpParserHandler接口(interface):

using System
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HttpMachine
{
    public interface IHttpParserHandler
    {
        void OnMessageBegin(HttpParser parser);
        void OnMethod(HttpParser parser, string method);
        void OnRequestUri(HttpParser parser, string requestUri);
        void OnFragment(HttpParser parser, string fragment);
        void OnQueryString(HttpParser parser, string queryString);
        void OnHeaderName(HttpParser parser, string name);
        void OnHeaderValue(HttpParser parser, string value);
        void OnHeadersEnd(HttpParser parser);
        void OnBody(HttpParser parser, ArraySegment<byte> data);
        void OnMessageEnd(HttpParser parser);
    }
}

关于C# HTTP 请求解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975308/

相关文章:

c# - linq 排序 OrderBy(a => a.Url) 中的 System.NullReferenceException,UWP

c# - .net Youtube api v3 将视频上传到特定帐户

c# - 通过具有重定向的代码下载文件?

c# - 测试/调试 Shell Extension & Regasm & explorer.exe

java - 如何将流量从端口 443 和 80 重定向到我的 heroku 应用程序 dyno?

c# - CreateParameter 上的 ASP.NET 5 vNext EF7 SQLite TypeLoadException

c# - 如何使用 ReSharper SDK 创建 [CustomAttribute(typeof(GenericType<,>))]?

c# - Visual Studio $(ProjectDir) 是空字符串

javascript - Jsonstub 响应未显示

http - 在 root 和 rest on/api 上提供静态内容