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 std::string method() const
23 virtual std::string url() const
26 virtual std::string scheme() const;
27 virtual std::string path() const;
28 virtual std::string host() const; // host, including port
30 virtual string_list requestHeaders() const;
31 virtual std::string header(const std::string& name) const;
33 virtual int responseCode() const
34 { return _responseStatus; }
36 virtual std::string resposeReason() const
37 { return _responseReason; }
39 virtual int contentLength() const;
41 friend class Connection;
43 Request(const std::string& url, const std::string method = "get");
45 virtual void responseStart(const std::string& r);
46 virtual void responseHeader(const std::string& key, const std::string& value);
47 virtual void responseHeadersComplete();
48 virtual void responseComplete();
50 virtual void gotBodyData(const char* s, int n);
56 std::string _responseReason;
58 typedef std::map<std::string, std::string> HeaderDict;
59 HeaderDict _responseHeaders;
62 typedef SGSharedPtr<Request> Request_ptr;
64 } // of namespace HTTP
66 } // of namespace simgear
68 #endif // of SG_HTTP_REQUEST_HXX