#include void HTTPHeader::parseHeader(Block &headerLines) { for(int index=0;index blkHeaderLines; createHeaderLines(headerLines,blkHeaderLines); *this=blkHeaderLines; } void HTTPHeader::createHeaderLines(String strHeaders,Block &headerLines) { char *strPtr=0; headerLines.remove(); if(strHeaders.isNull())return; strPtr=strHeaders.str(); strPtr=::strtok(strPtr,"\n\0"); while(true) { if(!strPtr)break; String str=strPtr; str.removeTokens("\r\n"); headerLines.insert(&str); strPtr=::strtok(0,"\n\0"); } } String HTTPHeader::serialize(void) { String strHeader; String crlf="\r\n"; if(!mDate.isNull())strHeader+=String("Date: ")+mDate+crlf; if(!mServer.isNull())strHeader+=String("Server: ")+mServer+crlf; if(!mLastModified.isNull())strHeader+=String("Last-Modified: ")+mLastModified+crlf; if(!mETag.isNull())strHeader+=String("ETag: ")+mETag+crlf; if(!mAcceptRanges.isNull())strHeader+=String("Accept-Ranges: ")+mAcceptRanges+crlf; if(0!=mContentLength)strHeader+=String("Content-Length :")+String().fromInt(mContentLength)+crlf; if(!mContentType.isNull())strHeader+=String("Content-Type: ")+mContentType+crlf; return strHeader; } String HTTPHeader::getApplicationExtension(void)const { return String(".")+mContentType.betweenString('/',0); }