summaryrefslogtreecommitdiff
path: root/LibCore/CHttpRequest.h
blob: 5432baf4b53434389171b8954fa927dbeeababe6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once

#include <AK/AKString.h>

class CNetworkJob;

class CHttpRequest {
public:
    enum Method { Invalid, HEAD, GET, POST };

    CHttpRequest();
    ~CHttpRequest();

    String hostname() const { return m_hostname; }
    int port() const { return m_port; }
    String path() const { return m_path; }
    Method method() const { return m_method; }

    void set_hostname(const String& hostname) { m_hostname = hostname; }
    void set_port(int port) { m_port = port; }
    void set_path(const String& path) { m_path = path; }
    void set_method(Method method) { m_method = method; }

    String method_name() const;
    ByteBuffer to_raw_request() const;

    CNetworkJob* schedule();

private:
    String m_hostname;
    String m_path;
    int m_port { 80 };
    Method m_method { GET };
};