37 std::string rest = base_url;
39 auto scheme_end = rest.find(
"://");
40 if (scheme_end != std::string::npos) {
41 std::string scheme = rest.substr(0, scheme_end);
42 out.tls = (scheme ==
"https");
43 rest = rest.substr(scheme_end + 3);
46 auto path_start = rest.find(
'/');
47 std::string authority;
48 if (path_start != std::string::npos) {
49 authority = rest.substr(0, path_start);
50 out.prefix = rest.substr(path_start);
55 auto colon = authority.find(
':');
56 if (colon != std::string::npos) {
57 out.host = authority.substr(0, colon);
58 out.port = authority.substr(colon + 1);
61 out.port = out.tls ?
"443" :
"80";