示例#1
0
void Pop3::Parser::Body ()
{
	if (_lineSeq->AtEnd ())
		return;

	_sink->OnBodyStart ();

	if (_currentContext.IsMultiPart ())
	{
		MultiPart ();
	}
	else
	{
		SimplePart ();
	}

	if (_context.empty ()) // root level
	{
		// RFC #2046: implementers must ignore anything that appears 
		// after the last boundary delimeter line
		// or anything that appears after a simple part
		EatToEnd ();
	}

	_sink->OnBodyEnd ();
}
示例#2
0
void HttpRequest::parseContent(const QByteArray& content) {
	setContent(content);
	if (isMultiPart()) {
		multiPart = MultiPart(contentType);
		multiPart.parse(content);
		if (multiPart.isFormData()) {
			requestParams.parseMultiPart(multiPart);
		}
	} else if (contentType.is(ContentType::Application, ContentType::XWWWFormUrlEncoded)) {
		requestParams.parseUrlEncoded(content);
	}
}