blob: 5d75d7183bc4277332979d6b5bf7b11e4ba77bc4 [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CUPS_PROXY_MHD_HTTP_REQUEST_H_
#define CUPS_PROXY_MHD_HTTP_REQUEST_H_
#include <map>
#include <string>
#include <vector>
#include <base/strings/string_piece.h>
#include <microhttpd.h>
namespace cups_proxy {
class MHDHttpRequest {
public:
MHDHttpRequest();
void SetStatusLine(base::StringPiece method,
base::StringPiece url,
base::StringPiece version);
void AddHeader(base::StringPiece key, base::StringPiece value);
void PushToBody(base::StringPiece data);
void Finalize();
const std::string& method() const { return method_; }
const std::string& url() const { return url_; }
const std::string& version() const { return version_; }
const std::map<std::string, std::string>& headers() const { return headers_; }
const std::vector<uint8_t>& body() const { return body_; }
private:
std::string method_;
std::string url_;
std::string version_;
std::map<std::string, std::string> headers_;
std::vector<uint8_t> body_;
bool chunked_;
};
} // namespace cups_proxy
#endif // CUPS_PROXY_MHD_HTTP_REQUEST_H_