Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
HttpURLParser.h
1// Copyright (c) Stefano Cristiano
2// SPDX-License-Identifier: MIT
3#pragma once
4#include "../Foundation/Result.h"
5#include "../Foundation/StringSpan.h"
6#include "HttpExport.h"
7
8namespace SC
9{
12
14struct SC_HTTP_EXPORT HttpURLParser
15{
26
31
32 private:
33 StringEncoding encoding;
34
35 Result parsePath();
36 Result parseHost();
37 Result validateProtocol();
38 Result validatePath();
39 Result validateHost();
40 Result parseUserPassword(StringSpan userPassword);
41 struct Internal;
42};
44
45} // namespace SC
unsigned short uint16_t
Platform independent (2) bytes unsigned int.
Definition PrimitiveTypes.h:28
Parse an URL splitting it into its base components.
Definition HttpURLParser.h:15
StringSpan password
Returns pass (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:18
StringSpan path
Returns /pa/th?q=val (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:23
uint16_t port
Returns 80 (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:20
StringSpan pathname
Returns /pa/th (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:22
StringSpan host
Returns site.com:80 (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:21
StringSpan protocol
Returns http (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:16
StringSpan username
Returns user (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:17
StringSpan hash
Returns #hash (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:25
Result parse(StringSpan url)
Parse StringSpan representing an URL.
StringSpan hostname
Returns site.com (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:19
StringSpan search
Returns ?q=val (from http://user:pass@site.com:80/pa/th?q=val#hash)
Definition HttpURLParser.h:24
An ascii string used as boolean result. SC_TRY macro forwards errors to caller.
Definition Result.h:13
An read-only view over a string (to avoid including Strings library when parsing is not needed).
Definition StringSpan.h:37