Fabrice Froehly / Mbed OS GuardRoom

Dependencies:   C12832 MMA7660 mbed-http

Fork of http-example by sandbox

Committer:
Jan Jongboom
Date:
Thu Feb 16 11:13:40 2017 +0100
Revision:
1:3bff14db67c7
Add mbed-http

Who changed what in which revision?

UserRevisionLine numberNew 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