diff --git a/Applications/ChanViewer/BoardListModel.cpp b/Applications/ChanViewer/BoardListModel.cpp index bb326d94db..d7120947e1 100644 --- a/Applications/ChanViewer/BoardListModel.cpp +++ b/Applications/ChanViewer/BoardListModel.cpp @@ -19,8 +19,7 @@ BoardListModel::~BoardListModel() void BoardListModel::update() { CHttpRequest request; - request.set_hostname("a.4cdn.org"); - request.set_path("/boards.json"); + request.set_url("http://a.4cdn.org/boards.json"); auto* job = request.schedule(); diff --git a/Applications/ChanViewer/ThreadCatalogModel.cpp b/Applications/ChanViewer/ThreadCatalogModel.cpp index 5e7f998f42..d864f3cc36 100644 --- a/Applications/ChanViewer/ThreadCatalogModel.cpp +++ b/Applications/ChanViewer/ThreadCatalogModel.cpp @@ -27,8 +27,7 @@ void ThreadCatalogModel::set_board(const String& board) void ThreadCatalogModel::update() { CHttpRequest request; - request.set_hostname("a.4cdn.org"); - request.set_path(String::format("/%s/catalog.json", m_board.characters())); + request.set_url(String::format("http://a.4cdn.org/%s/catalog.json", m_board.characters())); auto* job = request.schedule(); diff --git a/Applications/Downloader/main.cpp b/Applications/Downloader/main.cpp index 7bb069363c..ba0f270273 100644 --- a/Applications/Downloader/main.cpp +++ b/Applications/Downloader/main.cpp @@ -9,8 +9,7 @@ int main(int argc, char** argv) GApplication app(argc, argv); CHttpRequest request; - request.set_hostname("www.google.com"); - request.set_path("/"); + request.set_url("http://www.google.com/"); auto job = request.schedule(); job->on_finish = [&job](bool success) { diff --git a/Libraries/LibCore/CHttpJob.cpp b/Libraries/LibCore/CHttpJob.cpp index 068c80c2a6..716d170acb 100644 --- a/Libraries/LibCore/CHttpJob.cpp +++ b/Libraries/LibCore/CHttpJob.cpp @@ -121,7 +121,7 @@ void CHttpJob::start() dbg() << "CHttpJob: on_connected callback"; on_socket_connected(); }; - bool success = m_socket->connect(m_request.hostname(), m_request.port()); + bool success = m_socket->connect(m_request.url().host(), m_request.url().port()); if (!success) return did_fail(CNetworkJob::Error::ConnectionFailed); } diff --git a/Libraries/LibCore/CHttpRequest.cpp b/Libraries/LibCore/CHttpRequest.cpp index 93cbc6987d..bc64f3169d 100644 --- a/Libraries/LibCore/CHttpRequest.cpp +++ b/Libraries/LibCore/CHttpRequest.cpp @@ -36,9 +36,9 @@ ByteBuffer CHttpRequest::to_raw_request() const StringBuilder builder; builder.append(method_name()); builder.append(' '); - builder.append(m_path); + builder.append(m_url.path()); builder.append(" HTTP/1.0\r\nHost: "); - builder.append(m_hostname); + builder.append(m_url.host()); builder.append("\r\n\r\n"); return builder.to_byte_buffer(); } diff --git a/Libraries/LibCore/CHttpRequest.h b/Libraries/LibCore/CHttpRequest.h index c5a39c9ffd..b442093c19 100644 --- a/Libraries/LibCore/CHttpRequest.h +++ b/Libraries/LibCore/CHttpRequest.h @@ -1,6 +1,7 @@ #pragma once #include +#include class CNetworkJob; @@ -16,14 +17,10 @@ public: 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; } + const URL& url() const { return m_url; } + void set_url(const URL& url) { m_url = url; } - 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; } + Method method() const { return m_method; } void set_method(Method method) { m_method = method; } String method_name() const; @@ -32,8 +29,6 @@ public: CNetworkJob* schedule(); private: - String m_hostname; - String m_path; - int m_port { 80 }; + URL m_url; Method m_method { GET }; };