2009-06-10 74 views
4

可能重複:
Converting Raw HTTP Request into HTTPWebRequest ObjectC#HTTP請求剖析

我有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

你的意思是你想的字節流轉換爲HttpRequest的實例?我從來沒有遇到過,但我想在框架中必須有一些代碼(可能是在HttpWebRequest中)。 – samjudson 2009-06-10 12:42:47

+0

不過你怎麼樣:-) – 2009-06-10 12:48:45

回答

3

貌似這個問題一直here之前有人問。顯然沒有內置的方法來做到這一點。

+0

啊,你打我吧。謝謝:-) – 2009-06-10 12:57:56

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); 
    } 
}