]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/protocol/http.h
Move code removing "-psn_xxx" command line arguments to common code.
[wxWidgets.git] / interface / wx / protocol / http.h
index 8251655264035cd7d4c8c65b280b0d4079256cf6..744947e23ae8440bcdc86450b713790bbc8ad51c 100644 (file)
@@ -2,8 +2,7 @@
 // Name:        protocol/http.h
 // Purpose:     interface of wxHTTP
 // Author:      wxWidgets team
 // Name:        protocol/http.h
 // Purpose:     interface of wxHTTP
 // Author:      wxWidgets team
-// RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 /////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -11,6 +10,8 @@
 
     wxHTTP can be used to establish a connection to an HTTP server.
 
 
     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}
 
     @library{wxnet}
     @category{net}
 
 class wxHTTP : public wxProtocol
 {
 public:
 class wxHTTP : public wxProtocol
 {
 public:
+    /**
+        Default constructor.
+    */
+    wxHTTP();
+
+    /**
+        Destructor will close the connection if connected.
+    */
+    virtual ~wxHTTP();
+
     //@{
     /**
         Connect to the HTTP server.
     //@{
     /**
         Connect to the HTTP server.
@@ -26,13 +37,18 @@ public:
         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.
         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.
      */
      */
-    bool Connect(const wxString& host);
-    bool Connect(const wxString& host, unsigned short port);
+    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 @e header.
+        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
         If the field doesn't exist, it will return an empty string and not a @NULL string.
 
         @note
@@ -71,14 +87,90 @@ public:
 
         Please refer to RFC 2616 for the list of responses.
     */
 
         Please refer to RFC 2616 for the list of responses.
     */
-    int GetResponse();
+    int GetResponse() const;
+
+    /**
+        Set HTTP method.
+
+        Set <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">common</a>
+        or expanded HTTP method.
+
+        Overrides GET or POST methods that is used by default.
+
+        @param method
+            HTTP method name, e.g. "GET".
+
+        @since 3.0.0
+
+        @see SetPostBuffer(), SetPostText()
+    */
+    void SetMethod(const wxString& method);
 
     /**
         It sets data of a field to be sent during the next request to the HTTP 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);
         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 binary data to be posted to the server.
+
+        If a non-empty buffer is passed to this method, the next request will
+        be an HTTP @c POST instead of the default HTTP @c GET and the given @a
+        data will be posted as the body of this request.
+
+        For textual data a more convenient SetPostText() can be used instead.
+
+        @param contentType
+            The value of HTTP "Content-Type" header, e.g. "image/png".
+        @param data
+            The data to post.
+        @return
+            @true if any data was passed in or @false if the buffer was empty.
+
+        @since 2.9.4
+     */
+    bool SetPostBuffer(const wxString& contentType, const wxMemoryBuffer& data);
+
+    /**
+        Set the text to be posted to the server.
+
+        After a successful call to this method, the request will use HTTP @c
+        POST instead of the default @c GET when it's executed.
+
+        Use SetPostBuffer() if you need to post non-textual data.
+
+        @param contentType
+            The value of HTTP "Content-Type" header, e.g. "text/html;
+            charset=UTF-8".
+        @param data
+            The data to post.
+        @param conv
+            The conversion to use to convert @a data contents to a byte stream.
+            Its value should be consistent with the charset parameter specified
+            in @a contentType.
+        @return
+            @true if string was non-empty and was successfully converted using
+            the given @a conv or @false otherwise (in this case this request
+            won't be @c POST'ed correctly).
+
+        @since 2.9.4
+     */
+    bool SetPostText(const wxString& contentType,
+                     const wxString& data,
+                     const wxMBConv& conv = wxConvUTF8);
 };
 
 };