void URL::updateSchema(const std::string& scheme) { if (!hasSchema()) throw std::runtime_error("Cannot update invalid URL"); std::string tmp(str()); util::replaceInPlace(tmp, this->scheme(), scheme); parse(tmp); }
std::string URL::scheme() const { std::string res; if (hasSchema()) { res.assign(_buf.substr(_parser.field_data[UF_SCHEMA].off, _parser.field_data[UF_SCHEMA].len)); util::toLower(res); // always returned as lowercase } return res; }
std::string UrlObject::host() const { // TODO: if not specified, use host name if (hasSchema()) return _buf.substr(_handle.field_data[UF_HOST].off, _handle.field_data[UF_HOST].len); return std::string("localhost"); }
std::string UrlObject::schema() const { if (hasSchema()) return _buf.substr(_handle.field_data[UF_SCHEMA].off, _handle.field_data[UF_SCHEMA].len); return "http"; }