自己写个IIS玩-协议解析篇
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-20
fireEvent(); headerTokenIndex = ContainsHeaderEndToken (_headerNode); } } private void fireEvent() { if (!_waitParseBody) { if (_currentMessage == null) return; if (_currentMessage.MessageType == MessageType.Request) { HttpRequest request = _currentMessage.AsRequest(); Action<HttpRequest> temp = RequestReceived; if (temp != null) temp(request); } else { HttpResponse response = _currentMessage.AsResponse(); Action<HttpResponse> temp = ResponseReceived; if (temp != null) temp(response); } _currentMessage = null; } } private void ReadBody(HttpMessage message) { if (message.ContentLength == 0) { _waitParseBody = false; return; } int i = 0, pos = 0; bool first = true; BytesNode tempNode = _headerNode; BytesNode previousNode = tempNode; while (tempNode != null) { i = i + tempNode.Length; if (i >= message.ContentLength) { if (first) pos = tempNode.Start + message.ContentLength; else pos = tempNode.Length - (i - message.ContentLength); break; } first = false; previousNode = tempNode; tempNode = tempNode.Next; } if (i >= message.ContentLength) { tempNode.Cut(tempNode.Start, pos ); message.BodyStr = _headerNode; _headerNode = tempNode.CutNew(null, pos, tempNode.Value.Length); tempNode.Next = null; _waitParseBody = false; |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于自己写个IIS玩-协议解析篇的所有评论