http_response.h revision b2df76ea8fec9e32f6f3718986dba0d95315b29c
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_TEST_EMBEDDED_TEST_SERVER_HTTP_RESPONSE_H_ 6#define NET_TEST_EMBEDDED_TEST_SERVER_HTTP_RESPONSE_H_ 7 8#include <map> 9#include <string> 10 11#include "base/basictypes.h" 12 13namespace net { 14namespace test_server { 15 16enum ResponseCode { 17 SUCCESS = 200, 18 CREATED = 201, 19 NO_CONTENT = 204, 20 MOVED = 301, 21 RESUME_INCOMPLETE = 308, 22 NOT_FOUND = 404, 23 PRECONDITION = 412, 24 ACCESS_DENIED = 500, 25}; 26 27// Respresents a HTTP response. Since it can be big, it may be better to use 28// scoped_ptr to pass it instead of copying. 29class HttpResponse { 30 public: 31 HttpResponse(); 32 ~HttpResponse(); 33 34 // The response code. 35 ResponseCode code() const { return code_; } 36 void set_code(ResponseCode code) { code_ = code; } 37 38 // The content of the response. 39 const std::string& content() const { return content_; } 40 void set_content(const std::string& content) { content_ = content; } 41 42 // The content type. 43 const std::string& content_type() const { return content_type_; } 44 void set_content_type(const std::string& content_type) { 45 content_type_ = content_type; 46 } 47 48 // The custom headers to be sent to the client. 49 const std::map<std::string, std::string>& custom_headers() const { 50 return custom_headers_; 51 } 52 53 // Adds a custom header. 54 void AddCustomHeader(const std::string& key, const std::string& value) { 55 custom_headers_[key] = value; 56 } 57 58 // Generates and returns a http response string. 59 std::string ToResponseString() const; 60 61 private: 62 ResponseCode code_; 63 std::string content_; 64 std::string content_type_; 65 std::map<std::string, std::string> custom_headers_; 66}; 67 68} // namespace test_server 69} // namespace net 70 71#endif // NET_TEST_EMBEDDED_TEST_SERVER_HTTP_RESPONSE_H_ 72