The code from https://github.com/vpcola/Nucleo

Committer:
sinrab
Date:
Wed Oct 08 11:00:24 2014 +0000
Revision:
0:5464d5e415e5
The code from https://github.com/vpcola/Nucleo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sinrab 0:5464d5e415e5 1 #ifndef __HTTP_CLIENT_H__
sinrab 0:5464d5e415e5 2 #define __HTTP_CLIENT_H__
sinrab 0:5464d5e415e5 3
sinrab 0:5464d5e415e5 4 #include "mbed.h"
sinrab 0:5464d5e415e5 5 #include <string>
sinrab 0:5464d5e415e5 6 #include <map>
sinrab 0:5464d5e415e5 7 #include "TCPSocketConnection.h"
sinrab 0:5464d5e415e5 8
sinrab 0:5464d5e415e5 9 enum content_type{
sinrab 0:5464d5e415e5 10 CONTENT_TYPE_TEXT,
sinrab 0:5464d5e415e5 11 CONTENT_TYPE_APPLICATION,
sinrab 0:5464d5e415e5 12 CONTENT_TYPE_IMAGE,
sinrab 0:5464d5e415e5 13 CONTENT_TYPE_MESSAGE
sinrab 0:5464d5e415e5 14 };
sinrab 0:5464d5e415e5 15
sinrab 0:5464d5e415e5 16
sinrab 0:5464d5e415e5 17 typedef struct {
sinrab 0:5464d5e415e5 18 int http_response;
sinrab 0:5464d5e415e5 19 std::string http_response_text;
sinrab 0:5464d5e415e5 20 std::map<std::string, std::string> http_info;
sinrab 0:5464d5e415e5 21 } HeaderInfo;
sinrab 0:5464d5e415e5 22
sinrab 0:5464d5e415e5 23 class HttpClient
sinrab 0:5464d5e415e5 24 {
sinrab 0:5464d5e415e5 25 public:
sinrab 0:5464d5e415e5 26 HttpClient(const char * hostname);
sinrab 0:5464d5e415e5 27 int get(const char * url, char * buffer, size_t buf_len, HeaderInfo & hinfo, int timeout = 5000);
sinrab 0:5464d5e415e5 28
sinrab 0:5464d5e415e5 29 private:
sinrab 0:5464d5e415e5 30 std::string build_http_headers(std::string type, std::string path);
sinrab 0:5464d5e415e5 31 int parse_url(const char* url,
sinrab 0:5464d5e415e5 32 char* scheme,
sinrab 0:5464d5e415e5 33 size_t scheme_len,
sinrab 0:5464d5e415e5 34 char* host,
sinrab 0:5464d5e415e5 35 size_t host_len,
sinrab 0:5464d5e415e5 36 uint16_t* port,
sinrab 0:5464d5e415e5 37 char* path, size_t max_path);
sinrab 0:5464d5e415e5 38
sinrab 0:5464d5e415e5 39 int parse_headers(std::string header_line, HeaderInfo & hinfo, int line);
sinrab 0:5464d5e415e5 40
sinrab 0:5464d5e415e5 41 int read_data(HeaderInfo & hinfo, char * buffer, size_t buf_len);
sinrab 0:5464d5e415e5 42
sinrab 0:5464d5e415e5 43 int send(char* buf, size_t len);
sinrab 0:5464d5e415e5 44 // Receive untill a char term is received
sinrab 0:5464d5e415e5 45 int recv_until(char * buf, size_t len, char term);
sinrab 0:5464d5e415e5 46
sinrab 0:5464d5e415e5 47 std::string _hostname; // The name of this local host
sinrab 0:5464d5e415e5 48 int _timeout;
sinrab 0:5464d5e415e5 49 TCPSocketConnection m_sock;
sinrab 0:5464d5e415e5 50 int _httpResponse;
sinrab 0:5464d5e415e5 51 };
sinrab 0:5464d5e415e5 52
sinrab 0:5464d5e415e5 53 #endif
sinrab 0:5464d5e415e5 54