#define UNRESERVED ALPHA NUMERIC "-._~" "%"
#define GEN_DELIMS ":/?#[]@"
#define SUB_DELIMS "!$&'()*+,;="
-#define RESERVED GEN_DELIMS SUB-DELIMS
#define PCHAR UNRESERVED SUB_DELIMS ":@"
+#define PCHAR_ENCODE UNRESERVED ":@"
#define ACSCHEME ALPHA NUMERIC ".-+"
#define ACPORT NUMERIC
#define ACPATHSEGMENT PCHAR
+#define ACPATHSEGMENT_ENCODE PCHAR_ENCODE
#define ACQUERY PCHAR "/?"
+#define ACQUERY_ENCODE PCHAR_ENCODE "/?"
#define ACFRAGMENT PCHAR "/?"
+#define ACFRAGMENT_ENCODE PCHAR_ENCODE "/?"
#endif /* URL_CHARACTERS_H */
else {
BOOST_FOREACH (const String& segment, m_Path) {
url += "/";
- url += Utility::EscapeString(segment, ACPATHSEGMENT, false);
+ url += Utility::EscapeString(segment, ACPATHSEGMENT_ENCODE, false);
}
}
typedef std::pair<String, std::vector<String> > kv_pair;
BOOST_FOREACH (const kv_pair& kv, m_Query) {
- String key = Utility::EscapeString(kv.first, ACQUERY, false);
+ String key = Utility::EscapeString(kv.first, ACQUERY_ENCODE, false);
if (param.IsEmpty())
param = "?";
else
if (kv.second.size() > 1)
temp += "[]";
- temp += "=" + Utility::EscapeString(s, ACQUERY, false);
+ temp += "=" + Utility::EscapeString(s, ACQUERY_ENCODE, false);
}
param += temp;
}
url += param;
if (!m_Fragment.IsEmpty())
- url += "#" + Utility::EscapeString(m_Fragment, ACFRAGMENT, false);
+ url += "#" + Utility::EscapeString(m_Fragment, ACFRAGMENT_ENCODE, false);
return url;
}