我正在使用函數dpkt.http.Request(),但有時http流不是請求。 有沒有在python或dpkt知道我的請求是GET還是POST的快速方法?最好的方法知道HTTP請求是使用DPKT的GET還是POST?
回答
嘗試解析它作爲HTTP請求,並捕獲dpkt.UnpackError
,以便您的程序不會死亡,如果它不是HTTP請求。
如果沒有拋出異常,則可以使用Request
對象的.method
來獲取使用的方法。
>>> import dpkt
>>> r = dpkt.Request('GET/HTTP/1.0\r\n\r\n')
Finding the HTTP verb is easy:
>>> r.method
"GET"
如果難以解析HTTP請求數據,那麼它是不可能得到的原始源數據回因爲dpkt.Request.unpack
方法如何處理異常。
作爲一種解決方法是這樣可以很方便:
>>> data = 'GET/HTT' #malformed request
>>> try:
... r = dpkt.Request(data)
... except dpkt.UnpackError:
... print data.split()[0]
...
'GET'
這是不正確的,因爲dpkt並不總是能夠解析請求。 –
擴大了處理凌亂請求的答案。 –
是的我會這樣做,謝謝 –
- 1. 如何知道在Struts 2操作中HTTP請求是GET還是POST?
- 2. 無效的SOAP請求:HTTP方法'GET'不是POST
- 3. 如何在codeigniter中檢查請求是POST還是GET請求?
- 4. Android webserver:如何知道收到的請求方法(GET或POST)
- 5. RestKit:知道請求是POST還是PUT in didLoadObjects
- 6. 在php中,是否有任何方法來確定傳入的http請求是POST還是GET?
- 7. POST請求後的未知GET請求
- 8. 如何檢查Wicket中的請求是GET還是POST?
- 9. 什麼是最好的方法來提出http請求
- 10. 使用IOS 5創建HTTP GET請求的最簡單方法是什麼?
- 11. 我如何知道我的代碼方法好還是不好?
- 12. 廚師HTTP請求GET/POST
- 13. Http請求POST vs GET
- 14. 什麼是用於HTTP POST,GET等最好的Java庫?
- 15. 計算請求應該是GET還是POST?
- 16. 如何知道我的HTTP請求是否使用UTF-8?
- 17. nginx proxy_pass基於請求方法是POST,PUT還是DELETE
- 18. 如何知道該視圖是用於JavaScript中的GET還是POST?
- 19. Apache 2.2更改從POST到GET的HTTP請求方法
- 20. 以默認方法GET取代POST的HTTP請求
- 21. Ajax請求,應該是POST還是PUT
- 22. HTTP:如果重定向請求是GET請求,POST請求會收到302?
- 23. 針對WinXP的HTTP POST和GET請求
- 24. 在控制器內部,知道請求是否是XMLHTTP的最好方法是什麼(ZF)
- 25. 要知道服務器是通過HTTP還是HTTPS訪問的,最好的辦法是什麼?
- 26. 保護GET請求的好方法?
- 27. Slim POST方法和AngularJs Http POST請求
- 28. 在Perl中創建HTTP GET請求的最簡單方法是什麼?
- 29. 在Android中同步發送HTTP GET請求的最佳方法是什麼?
- 30. WebApi中的默認HTTP動詞是什麼? GET還是POST?
你可以嘗試提琴手:http://www.fiddler2.com/fiddler2/ –