Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C12832 MMA7660 mbed-http
Fork of http-example by
source/mbed-http/http_response.h@1:3bff14db67c7, 2017-02-16 (annotated)
- Committer:
- Jan Jongboom
- Date:
- Thu Feb 16 11:13:40 2017 +0100
- Revision:
- 1:3bff14db67c7
Add mbed-http
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jan Jongboom |
1:3bff14db67c7 | 1 | #ifndef _MBED_HTTP_HTTP_RESPONSE |
Jan Jongboom |
1:3bff14db67c7 | 2 | #define _MBED_HTTP_HTTP_RESPONSE |
Jan Jongboom |
1:3bff14db67c7 | 3 | #include <string> |
Jan Jongboom |
1:3bff14db67c7 | 4 | #include <vector> |
Jan Jongboom |
1:3bff14db67c7 | 5 | #include "http_parser.h" |
Jan Jongboom |
1:3bff14db67c7 | 6 | |
Jan Jongboom |
1:3bff14db67c7 | 7 | using namespace std; |
Jan Jongboom |
1:3bff14db67c7 | 8 | |
Jan Jongboom |
1:3bff14db67c7 | 9 | class HttpResponse { |
Jan Jongboom |
1:3bff14db67c7 | 10 | public: |
Jan Jongboom |
1:3bff14db67c7 | 11 | HttpResponse() { |
Jan Jongboom |
1:3bff14db67c7 | 12 | status_code = 0; |
Jan Jongboom |
1:3bff14db67c7 | 13 | concat_header_field = false; |
Jan Jongboom |
1:3bff14db67c7 | 14 | concat_header_value = false; |
Jan Jongboom |
1:3bff14db67c7 | 15 | } |
Jan Jongboom |
1:3bff14db67c7 | 16 | |
Jan Jongboom |
1:3bff14db67c7 | 17 | void set_status(int a_status_code, string a_status_message) { |
Jan Jongboom |
1:3bff14db67c7 | 18 | status_code = a_status_code; |
Jan Jongboom |
1:3bff14db67c7 | 19 | status_message = a_status_message; |
Jan Jongboom |
1:3bff14db67c7 | 20 | } |
Jan Jongboom |
1:3bff14db67c7 | 21 | |
Jan Jongboom |
1:3bff14db67c7 | 22 | int get_status_code() { |
Jan Jongboom |
1:3bff14db67c7 | 23 | return status_code; |
Jan Jongboom |
1:3bff14db67c7 | 24 | } |
Jan Jongboom |
1:3bff14db67c7 | 25 | |
Jan Jongboom |
1:3bff14db67c7 | 26 | string get_status_message() { |
Jan Jongboom |
1:3bff14db67c7 | 27 | return status_message; |
Jan Jongboom |
1:3bff14db67c7 | 28 | } |
Jan Jongboom |
1:3bff14db67c7 | 29 | |
Jan Jongboom |
1:3bff14db67c7 | 30 | void set_header_field(string field) { |
Jan Jongboom |
1:3bff14db67c7 | 31 | concat_header_value = false; |
Jan Jongboom |
1:3bff14db67c7 | 32 | |
Jan Jongboom |
1:3bff14db67c7 | 33 | // headers can be chunked |
Jan Jongboom |
1:3bff14db67c7 | 34 | if (concat_header_field) { |
Jan Jongboom |
1:3bff14db67c7 | 35 | header_fields[header_fields.size() - 1] = header_fields[header_fields.size() - 1] + field; |
Jan Jongboom |
1:3bff14db67c7 | 36 | } |
Jan Jongboom |
1:3bff14db67c7 | 37 | else { |
Jan Jongboom |
1:3bff14db67c7 | 38 | header_fields.push_back(field); |
Jan Jongboom |
1:3bff14db67c7 | 39 | } |
Jan Jongboom |
1:3bff14db67c7 | 40 | |
Jan Jongboom |
1:3bff14db67c7 | 41 | concat_header_field = true; |
Jan Jongboom |
1:3bff14db67c7 | 42 | } |
Jan Jongboom |
1:3bff14db67c7 | 43 | |
Jan Jongboom |
1:3bff14db67c7 | 44 | void set_header_value(string value) { |
Jan Jongboom |
1:3bff14db67c7 | 45 | concat_header_field = false; |
Jan Jongboom |
1:3bff14db67c7 | 46 | |
Jan Jongboom |
1:3bff14db67c7 | 47 | // headers can be chunked |
Jan Jongboom |
1:3bff14db67c7 | 48 | if (concat_header_value) { |
Jan Jongboom |
1:3bff14db67c7 | 49 | header_values[header_values.size() - 1] = header_values[header_values.size() - 1] + value; |
Jan Jongboom |
1:3bff14db67c7 | 50 | } |
Jan Jongboom |
1:3bff14db67c7 | 51 | else { |
Jan Jongboom |
1:3bff14db67c7 | 52 | header_values.push_back(value); |
Jan Jongboom |
1:3bff14db67c7 | 53 | } |
Jan Jongboom |
1:3bff14db67c7 | 54 | |
Jan Jongboom |
1:3bff14db67c7 | 55 | concat_header_value = true; |
Jan Jongboom |
1:3bff14db67c7 | 56 | } |
Jan Jongboom |
1:3bff14db67c7 | 57 | |
Jan Jongboom |
1:3bff14db67c7 | 58 | size_t get_headers_length() { |
Jan Jongboom |
1:3bff14db67c7 | 59 | return header_fields.size(); |
Jan Jongboom |
1:3bff14db67c7 | 60 | } |
Jan Jongboom |
1:3bff14db67c7 | 61 | |
Jan Jongboom |
1:3bff14db67c7 | 62 | vector<string> get_headers_fields() { |
Jan Jongboom |
1:3bff14db67c7 | 63 | return header_fields; |
Jan Jongboom |
1:3bff14db67c7 | 64 | } |
Jan Jongboom |
1:3bff14db67c7 | 65 | |
Jan Jongboom |
1:3bff14db67c7 | 66 | vector<string> get_headers_values() { |
Jan Jongboom |
1:3bff14db67c7 | 67 | return header_values; |
Jan Jongboom |
1:3bff14db67c7 | 68 | } |
Jan Jongboom |
1:3bff14db67c7 | 69 | |
Jan Jongboom |
1:3bff14db67c7 | 70 | void set_body(string v) { |
Jan Jongboom |
1:3bff14db67c7 | 71 | body = body + v; |
Jan Jongboom |
1:3bff14db67c7 | 72 | } |
Jan Jongboom |
1:3bff14db67c7 | 73 | |
Jan Jongboom |
1:3bff14db67c7 | 74 | string get_body() { |
Jan Jongboom |
1:3bff14db67c7 | 75 | return body; |
Jan Jongboom |
1:3bff14db67c7 | 76 | } |
Jan Jongboom |
1:3bff14db67c7 | 77 | |
Jan Jongboom |
1:3bff14db67c7 | 78 | private: |
Jan Jongboom |
1:3bff14db67c7 | 79 | int status_code; |
Jan Jongboom |
1:3bff14db67c7 | 80 | string status_message; |
Jan Jongboom |
1:3bff14db67c7 | 81 | |
Jan Jongboom |
1:3bff14db67c7 | 82 | vector<string> header_fields; |
Jan Jongboom |
1:3bff14db67c7 | 83 | vector<string> header_values; |
Jan Jongboom |
1:3bff14db67c7 | 84 | |
Jan Jongboom |
1:3bff14db67c7 | 85 | bool concat_header_field; |
Jan Jongboom |
1:3bff14db67c7 | 86 | bool concat_header_value; |
Jan Jongboom |
1:3bff14db67c7 | 87 | |
Jan Jongboom |
1:3bff14db67c7 | 88 | string body; |
Jan Jongboom |
1:3bff14db67c7 | 89 | }; |
Jan Jongboom |
1:3bff14db67c7 | 90 | #endif |