12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // Copyright 2013 The Chromium 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 NET_SERVER_HTTP_SERVER_RESPONSE_INFO_H_
- #define NET_SERVER_HTTP_SERVER_RESPONSE_INFO_H_
- #include <stddef.h>
- #include <string>
- #include <utility>
- #include "base/strings/string_split.h"
- #include "net/http/http_status_code.h"
- namespace net {
- class HttpServerResponseInfo {
- public:
- // Creates a 200 OK HttpServerResponseInfo.
- HttpServerResponseInfo();
- explicit HttpServerResponseInfo(HttpStatusCode status_code);
- HttpServerResponseInfo(const HttpServerResponseInfo& other);
- ~HttpServerResponseInfo();
- static HttpServerResponseInfo CreateFor404();
- static HttpServerResponseInfo CreateFor500(const std::string& body);
- void AddHeader(const std::string& name, const std::string& value);
- // This also adds an appropriate Content-Length header.
- void SetBody(const std::string& body, const std::string& content_type);
- // Sets content-length and content-type. Body should be sent separately.
- void SetContentHeaders(size_t content_length,
- const std::string& content_type);
- std::string Serialize() const;
- HttpStatusCode status_code() const;
- const std::string& body() const;
- private:
- using Headers = base::StringPairs;
- HttpStatusCode status_code_;
- Headers headers_;
- std::string body_;
- };
- } // namespace net
- #endif // NET_SERVER_HTTP_SERVER_RESPONSE_INFO_H_
|