00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef SEND_FORM_WITH_QT
00019 #define SEND_FORM_WITH_QT
00020 
00021 #include <QByteArray>
00022 #include <QHash>
00023 #include <QNetworkAccessManager>
00024 #include <QNetworkReply>
00025 #include <QNetworkRequest>
00026 #include <QString>
00027 #include <QStringList>
00028 #include <QUrl>
00029 
00033 class SendForm
00034 {
00035 public:
00042         SendForm( const QUrl & destination );
00043         
00051         void addField( const QString & name, const QString & value );
00052         
00064         void addFields( const QStringList & names, const QStringList & values );
00065         
00072         void clearFields();
00073         
00081         void addFile( const QString & name, const QString & file );
00082         
00094         void addFiles( const QStringList & names, const QStringList & files );
00095         
00100         void clearFiles();
00101         
00109         void clear();
00110         
00118         void setHeader( const QByteArray & headerName, const QByteArray & headerValue );
00119         
00126         void setReferer( const QString & url );
00127         
00132         void setDefaultUserAgent();
00133         
00140         void forceMultipart();
00141         
00150         void removeMultipart();
00151         
00160         QNetworkReply * post( QNetworkAccessManager * manager );
00161 
00162 private:
00163         QNetworkRequest m_request;
00164         QUrl m_destination;
00165         QHash< QString, QString > m_files;
00166         QHash< QString, QString > m_fields;
00167         bool m_forcemultipart;
00168         
00169         static void init();
00170         static bool m_initialized;
00171         static QHash< QString, QByteArray > mimeTypes;
00172 };
00173 
00174 #endif