1 #ifndef SG_HTTP_REQUEST_HXX
2 #define SG_HTTP_REQUEST_HXX
6 #include <simgear/structure/SGReferenced.hxx>
7 #include <simgear/structure/SGSharedPtr.hxx>
8 #include <simgear/math/sg_types.hxx>
16 class Request : public SGReferenced
21 virtual void setUrl(const std::string& url);
23 virtual std::string method() const
25 virtual std::string url() const
28 virtual std::string scheme() const;
29 virtual std::string path() const;
30 virtual std::string host() const;
31 virtual std::string hostAndPort() const;
32 virtual unsigned short port() const;
34 virtual string_list requestHeaders() const;
35 virtual std::string header(const std::string& name) const;
37 virtual int responseCode() const
38 { return _responseStatus; }
40 virtual std::string resposeReason() const
41 { return _responseReason; }
43 virtual unsigned int contentLength() const;
45 friend class Connection;
47 Request(const std::string& url, const std::string method = "get");
49 virtual void responseStart(const std::string& r);
50 virtual void responseHeader(const std::string& key, const std::string& value);
51 virtual void responseHeadersComplete();
52 virtual void responseComplete();
54 virtual void gotBodyData(const char* s, int n);
60 std::string _responseReason;
62 typedef std::map<std::string, std::string> HeaderDict;
63 HeaderDict _responseHeaders;
66 typedef SGSharedPtr<Request> Request_ptr;
68 } // of namespace HTTP
70 } // of namespace simgear
72 #endif // of SG_HTTP_REQUEST_HXX