Kea 2.5.9
post_request_json.h
Go to the documentation of this file.
1// Copyright (C) 2016-2020 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#ifndef HTTP_POST_REQUEST_JSON_H
8#define HTTP_POST_REQUEST_JSON_H
9
10#include <cc/data.h>
12#include <http/post_request.h>
13#include <boost/shared_ptr.hpp>
14#include <string>
15
16namespace isc {
17namespace http {
18
21public:
22 HttpRequestJsonError(const char* file, size_t line, const char* what) :
23 HttpRequestError(file, line, what) { };
24};
25
26class PostHttpRequestJson;
27
29typedef boost::shared_ptr<PostHttpRequestJson> PostHttpRequestJsonPtr;
30
38public:
39
41 explicit PostHttpRequestJson();
42
55 explicit PostHttpRequestJson(const Method& method, const std::string& uri,
56 const HttpVersion& version,
57 const HostHttpHeader& host_header = HostHttpHeader(),
58 const BasicHttpAuthPtr& basic_auth = BasicHttpAuthPtr());
59
64 virtual void finalize();
65
67 virtual void reset();
68
74
83 void setBodyAsJson(const data::ConstElementPtr& body);
84
94 data::ConstElementPtr getJsonElement(const std::string& element_name) const;
95
96protected:
97
100 void parseBodyAsJson();
101
104
105};
106
107} // namespace http
108} // namespace isc
109
110#endif
int version()
returns Kea hooks version.
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Represents HTTP Host header.
Definition: http_header.h:68
Generic exception thrown by HttpRequest class.
Definition: request.h:21
Exception thrown when body of the HTTP message is not JSON.
HttpRequestJsonError(const char *file, size_t line, const char *what)
Method
HTTP methods.
Definition: request.h:61
Represents HTTP POST request with JSON body.
virtual void finalize()
Complete parsing of the HTTP request.
data::ConstElementPtr getJsonElement(const std::string &element_name) const
Retrieves a single JSON element.
void setBodyAsJson(const data::ConstElementPtr &body)
Sets JSON body for an outbound message.
PostHttpRequestJson()
Constructor for inbound HTTP request.
data::ConstElementPtr getBodyAsJson() const
Retrieves JSON body.
virtual void reset()
Reset the state of the object.
data::ConstElementPtr json_
Pointer to the parsed JSON body.
void parseBodyAsJson()
Interprets body as JSON, which can be later retrieved using data element objects.
Represents HTTP POST request.
Definition: post_request.h:29
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:29
boost::shared_ptr< BasicHttpAuth > BasicHttpAuthPtr
Type of pointers to basic HTTP authentication objects.
Definition: basic_auth.h:70
boost::shared_ptr< PostHttpRequestJson > PostHttpRequestJsonPtr
Pointer to PostHttpRequestJson.
Defines the logger used by the top-level component of kea-lfc.
HTTP protocol version.
Definition: http_types.h:14