可能重复:
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框架中的某些东西来解析它,还是我必须手动完成?
干杯
答案 0 :(得分:6)
签出HttpMachine - dotNET的Kayak HTTP服务器的一个组件。 HttpMachine是一个回调驱动的HTTP解析器。
为了满足您的胃口,这是IHttpParserHandler界面:
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);
}
}
答案 1 :(得分:3)
在here之前,似乎已经询问了这个问题。显然没有内置的方法可以做到。