Kea
2.3.5-git
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
>
11
#include <
exceptions/exceptions.h
>
12
#include <
http/post_request.h
>
13
#include <boost/shared_ptr.hpp>
14
#include <string>
15
16
namespace
isc
{
17
namespace
http {
18
20
class
HttpRequestJsonError
:
public
HttpRequestError
{
21
public
:
22
HttpRequestJsonError
(
const
char
* file,
size_t
line,
const
char
*
what
) :
23
HttpRequestError
(file, line, what) { };
24
};
25
26
class
PostHttpRequestJson
;
27
29
typedef
boost::shared_ptr<PostHttpRequestJson>
PostHttpRequestJsonPtr
;
30
37
class
PostHttpRequestJson
:
public
PostHttpRequest
{
38
public
:
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
73
data::ConstElementPtr
getBodyAsJson()
const
;
74
83
void
setBodyAsJson(
const
data::ConstElementPtr
& body);
84
94
data::ConstElementPtr
getJsonElement(
const
std::string& element_name)
const
;
95
96
protected
:
97
100
void
parseBodyAsJson();
101
103
data::ConstElementPtr
json_
;
104
105
};
106
107
}
// namespace http
108
}
// namespace isc
109
110
#endif
isc::http::HostHttpHeader
Represents HTTP Host header.
Definition:
http_header.h:68
isc::http::PostHttpRequestJson
Represents HTTP POST request with JSON body.
Definition:
post_request_json.h:37
isc::http::HttpRequestError
Generic exception thrown by HttpRequest class.
Definition:
request.h:21
data.h
exceptions.h
isc::http::HttpVersion
HTTP protocol version.
Definition:
http_types.h:14
isc::http::PostHttpRequest
Represents HTTP POST request.
Definition:
post_request.h:29
isc::Exception::what
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Definition:
exceptions/exceptions.cc:32
post_request.h
isc::http::HttpRequestJsonError
Exception thrown when body of the HTTP message is not JSON.
Definition:
post_request_json.h:20
isc::http::PostHttpRequestJsonPtr
boost::shared_ptr< PostHttpRequestJson > PostHttpRequestJsonPtr
Pointer to PostHttpRequestJson.
Definition:
post_request_json.h:26
isc::http::HttpRequestJsonError::HttpRequestJsonError
HttpRequestJsonError(const char *file, size_t line, const char *what)
Definition:
post_request_json.h:22
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition:
data.h:27
version
int version()
returns Kea hooks version.
Definition:
bootp/version.cc:13
isc::http::HttpRequest::Method
Method
HTTP methods.
Definition:
request.h:61
isc
Defines the logger used by the top-level component of kea-lfc.
Definition:
agent_parser.cc:143
isc::http::PostHttpRequestJson::json_
data::ConstElementPtr json_
Pointer to the parsed JSON body.
Definition:
post_request_json.h:103
isc::http::BasicHttpAuthPtr
boost::shared_ptr< BasicHttpAuth > BasicHttpAuthPtr
Type of pointers to basic HTTP authentication objects.
Definition:
basic_auth.h:70
src
lib
http
post_request_json.h
Generated on Mon Jan 30 2023 14:16:14 for Kea by
1.8.13