-/* $Id$
-
-This file is part of libmsphttp
-Copyright © 2008 Mikkosoft Productions, Mikko Rasa
-Distributed under the LGPL
-*/
-
#include <msp/strings/formatter.h>
#include <msp/strings/regex.h>
#include <msp/strings/utils.h>
string Request::str() const
{
- string result=format("%s %s %s\r\n", method, path, version_str(http_version));
- result+=str_common();
+ string result = format("%s %s %s\r\n", method, path, version_str(http_version));
+ result += str_common();
return result;
}
Request Request::parse(const string &str)
{
- unsigned lf=str.find('\n');
- vector<string> parts=split(str.substr(0, lf-(str[lf-1]=='\r')), ' ', 2);
+ unsigned lf = str.find('\n');
+ vector<string> parts = split(str.substr(0, lf-(str[lf-1]=='\r')), ' ', 2);
if(parts.size()<3)
- throw InvalidParameterValue("Invalid request");
+ throw invalid_argument("Request::parse");
Request result(parts[0], parts[1]);
- result.http_version=parse_version(parts[2]);
+ result.http_version = parse_version(parts[2]);
- lf+=result.parse_headers(str.substr(lf+1));
+ lf += result.parse_headers(str.substr(lf+1));
result.parse_content(str.substr(lf+1));
Request Request::from_url(const string &str)
{
- Url url=parse_url(str);
+ Url url = parse_url(str);
if(url.scheme!="http")
- throw InvalidParameterValue("Only http scheme is supported");
- string path=url.path;
+ throw invalid_argument("Request::from_url");
+
+ string path = url.path;
if(path.empty())
- path="/";
+ path = "/";
if(!url.query.empty())
{
- path+='?';
- path+=url.query;
+ path += '?';
+ path += url.query;
}
Request result("GET", path);