2010-09-08 68 views
0

我正在學習Python語言。我想知道關於拆分HTTP請求從http請求中分離URL

GET /en/html/dummy.php?name=MyName&married=not+single &male=yes HTTP/1.1 

Host: www.explainth.at 
User-Agent: Mozilla/5.0 (Windows;en-GB; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11 
Accept: text/xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 
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 
Referer: http://www.explainth.at/en/misc/httpreq.shtml 

我想GET和主機(粗體字母)後的部分結合起來..

GET /en/html/dummy.php?name=MyName &結婚=不+單&男性= YES HTTP/1.1

主持人:www.explainth.at

如何可以做到?

回答

0

您必須按\r\n字節拆分HTTP請求。 (窗口上的換行標記)

1

目前尚不清楚您爲什麼要這樣做,背景或目標是什麼,或者數據如何到達您的程序。但是,Python對其字符串類型支持許多有用的字符串操作。所以,如果你有一個包含所有這些文本字符串,那麼你可能會發現splitlines方法有用,有一些名單切片沿着:

S =「」「\ ... GET/EN /html/dummy.php?name=MyName &已婚=不是+單身&男=是HTTP/1.1 ...主持人:www.explainth.at ...用戶代理:Mozilla/5.0(Windows; GB; rv:1.8.0.11)Gecko/20070312 Firefox/1.5.0.11 ...接受:text/xml,text/html; q = 0.9,text/plain; q = 0.8,image/png,/; q = 0.5 ... 「'」「 s.splitlines()[:2] ['GET /en/html/dummy.php?name=MyName &已婚=未單身& male = yes HTTP/1.1','Host:www.explainth .AT']

當然,如果你正在寫的任何一種真正的HTTP服務器軟件,這是不太可能是正確的做法(有幾乎爲零的原因,在這樣的操作低級別,如果你需要的話,你幾乎可以肯定地想寫或重用一個真正的HTTP解析器)。所以你可能想問一個更精確的問題。