URL Shortener/bg
Contents
Съкращаване на URL (URL Shortener)
Общ преглед
Чрез техниката за съкращаване на адреси на Интернет страници (URL) се съкраща дължината на URL и запазва посоката към желаната страница. Използва се често за по-просто представяне на URL-та в социални мрежи и мобилни приложения.
Програмни интерфейси
Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са:
Съкращаване на URL за Qt
Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и класът за сваляне на данни от URL.
Програмен код
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от location2sms (мобилно приложения с отворен код).
ifndef URLSHORTENER_H
- define URLSHORTENER_H
//Standard includes
include <QObject>
- include <QString>
//Project specific includes
include "filedownloader.h"
class UrlShortener : public QObject
{
Q_OBJECT
private:
FileDownloader* m_pDownloader;
QString m_sShortUrl;
public:
explicit UrlShortener(QObject parent = 0);
virtual ~UrlShortener();
/* * Request short URL from Google API * *
param sURL * *return nothing */ void requestShortUrl(QString sURL);
/*
* Get address
*
*
return QString
*/
QString getShortUrl() const;
signals:
void shortUrlRetrieved();
private slots:
void parseResponse();
};
- endif // URLSHORTENER_H
//Project specific includes
- include "urlshortener.h"
//Standard includes
- include <QTextStream>
UrlShortener::UrlShortener(QObject parent) :
QObject(parent), m_pDownloader(NULL)
{
m_pDownloader = new FileDownloader(this);
connect(m_pDownloader, SIGNAL (downloaded()), SLOT (parseResponse()));
} //——————————————————————————
UrlShortener::~UrlShortener() {
//Nothing to do
} //——————————————————————————
void UrlShortener::requestShortUrl(QString sURL) {
//Obtain short URL QUrl req = QUrl( "http://is.gd/create.php"); req.addQueryItem("format", "simple"); req.addQueryItem("longurl", sURL); m_pDownloader->downloadUrl(req);
} //——————————————————————————
void UrlShortener::parseResponse() {
QTextStream downloadedStream(m_pDownloader->downloadedData());
m_sShortUrl = downloadedStream.readAll();
//emit a signal emit shortUrlRetrieved();
} //——————————————————————————
QString UrlShortener::getShortUrl() const {
return m_sShortUrl;
} //——————————————————————————
Употреба
m_pUrlShortener = new UrlShortener(this);
connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl()));
//
m_pUrlShortener->requestShortUrl(QString("http://example.com"));