dolphin/Source/Core/Common/HttpRequest.h
Lioncash 251de89b5c HttpRequest: Use std::chrono for indicating time periods
Allows the use of chrono time points, on top of being more indicative of
time periods used at call sites, if custom timeouts are specified.
2017-06-18 15:48:37 -04:00

36 lines
946 B
C++

// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#pragma once
#include <chrono>
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "Common/CommonTypes.h"
namespace Common
{
class HttpRequest final
{
public:
explicit HttpRequest(std::chrono::milliseconds timeout_ms = std::chrono::milliseconds{3000});
~HttpRequest();
bool IsValid() const;
using Response = std::optional<std::vector<u8>>;
using Headers = std::map<std::string, std::optional<std::string>>;
Response Get(const std::string& url, const Headers& headers = {});
Response Post(const std::string& url, const std::vector<u8>& payload,
const Headers& headers = {});
Response Post(const std::string& url, const std::string& payload, const Headers& headers = {});
private:
class Impl;
std::unique_ptr<Impl> m_impl;
};
} // namespace Common