Beispiel #1
0
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);
}
Beispiel #2
0
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;
}
Beispiel #3
0
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");
}
Beispiel #4
0
std::string UrlObject::schema() const {
  if (hasSchema())
    return _buf.substr(_handle.field_data[UF_SCHEMA].off, _handle.field_data[UF_SCHEMA].len);
  return "http";
}