Clementine-audio-player-Mac.../3rdparty/libmygpo-qt/RequestHandler.h

87 lines
3.6 KiB
C++

/***************************************************************************
* This file is part of libmygpo-qt *
* Copyright (c) 2010 - 2013 Stefan Derkits <stefan@derkits.at> *
* Copyright (c) 2010 - 2011 Christian Wagner <christian.wagner86@gmx.at> *
* Copyright (c) 2010 - 2011 Felix Winter <ixos01@gmail.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this library; if not, write to the Free Software *
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 *
* USA *
***************************************************************************/
#ifndef LIBMYGPO_QT_REQUESTHANDLER_H_
#define LIBMYGPO_QT_REQUESTHANDLER_H_
#include "mygpo_export.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
namespace mygpo
{
/**
* Class for sending HTTP requests and handle the servers response.
*/
class RequestHandler
{
public:
/**
* @param username The username that should be used for authentication if required.
* @param password The password that should be used for authentication if required
*/
RequestHandler( const QString& username, const QString& password, QNetworkAccessManager* nam );
RequestHandler( QNetworkAccessManager* nam );
virtual ~RequestHandler();
/**
* Sends a GET request with the given url and receives the servers response.
* @param response The servers response will be written into this QByteArray
* @param url The request url (without http://) as QString
* @return 0 if the request was successful, corresponding ErrorCode if unsuccessful
*/
QNetworkReply* getRequest( const QString& url );
/**
* Sends a GET request with the given url, adds auth Data to the URL and receives the servers response.
* @param response The servers response will be written into this QByteArray
* @param url The request url (without http://) as QString
* @return 0 if the request was successful, corresponding ErrorCode if unsuccessful
*/
QNetworkReply* authGetRequest( const QString& url );
/**
* Sends a POST request with the given url and data, adds auth Data and receives the servers response
* @param data The data to send to the url
* @param url The request url (without http://) as QString
* @return 0 if the request was successful, corresponding ErrorCode if unsuccessful
*/
QNetworkReply* postRequest( const QByteArray data, const QString& url );
private:
QString m_username;
QString m_password;
QNetworkAccessManager* m_nam;
void addAuthData( QNetworkRequest& request );
void addUserAgent( QNetworkRequest& request );
};
}
#endif /* LIBMYGPO_QT_REQUESTHANDLER_H_ */