// Purpose: interface of wxHTTP
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxHTTP
- @headerfile http.h wx/protocol/http.h
wxHTTP can be used to establish a connection to an HTTP server.
+ wxHTTP can thus be used to create a (basic) HTTP @b client.
+
@library{wxnet}
@category{net}
{
public:
/**
- Returns the data attached with a field whose name is specified by @e header.
+ Default constructor.
+ */
+ wxHTTP();
+
+ /**
+ Destructor will close the connection if connected.
+ */
+ virtual ~wxHTTP();
+
+ //@{
+ /**
+ Connect to the HTTP server.
+
+ By default, connection is made to the port 80 of the specified @a host.
+ You may connect to a non-default port by specifying it explicitly using
+ the second overload.
+
+ Currently wxHTTP only supports IPv4.
+
+ For the overload taking wxSockAddress, the @a wait argument is ignored.
+ */
+ virtual bool Connect(const wxString& host);
+ virtual bool Connect(const wxString& host, unsigned short port);
+ virtual bool Connect(const wxSockAddress& addr, bool wait);
+ //@}
+
+ /**
+ Returns the data attached with a field whose name is specified by @a header.
If the field doesn't exist, it will return an empty string and not a @NULL string.
@note
The header is not case-sensitive, i.e. "CONTENT-TYPE" and "content-type"
represent the same header.
*/
- wxString GetHeader(const wxString& header);
+ wxString GetHeader(const wxString& header) const;
/**
Creates a new input stream on the specified path.
@see wxInputStream
*/
- wxInputStream* GetInputStream(const wxString& path);
+ virtual wxInputStream* GetInputStream(const wxString& path);
/**
Returns the HTTP response code returned by the server.
/**
It sets data of a field to be sent during the next request to the HTTP server.
- The field name is specified by @a header and the content by @e h_data.
+ The field name is specified by @a header and the content by @a h_data.
This is a low level function and it assumes that you know what you are doing.
*/
void SetHeader(const wxString& header, const wxString& h_data);
+
+ /**
+ Returns the value of a cookie.
+ */
+
+ wxString GetCookie(const wxString& cookie) const;
+
+ /**
+ Returns @true if there were cookies.
+ */
+ bool HasCookies() const;
+
+ /**
+ Set the data to be posted to the server.
+
+ If a non-empty string is passed to this method, the next request will
+ be an HTTP @c POST instead of the default HTTP @c GET and the data from
+ @a post_buf will be posted as the body of this request.
+ */
+ void SetPostBuffer(const wxString& post_buf);
};