URL Shortener/bg: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:snippets]]<br />[[Category:HowTo]] | [[Category:snippets]]<br />[[Category:HowTo]] | ||
[toc align_right= | [toc align_right="yes" depth="2"] | ||
'''Български''' [[URL_Shortener|English]] | '''Български''' [[URL_Shortener|English]] | ||
Line 13: | Line 13: | ||
== Програмни интерфейси == | == Програмни интерфейси == | ||
Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са:<br />* | Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са:<br />* "Google Url Shortener":http://goo.gl/<br />* "Bit.ly":http://dev.bitly.com/<br />* "is.gd and v.gd":http://is.gd/apishorteningreference.php | ||
== Съкращаване на URL за Qt == | == Съкращаване на URL за Qt == | ||
Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и | Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и "класът за сваляне на данни от URL":http://wiki.qt.io/Download_Data_from_URL_Bulgarian. | ||
=== Програмен код === | === Програмен код === | ||
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от | Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от "location2sms":https://gitorious.org/location2sms (мобилно приложения с отворен код). | ||
<code><br />#ifndef URLSHORTENER_H<br />#define URLSHORTENER_H | <code><br />#ifndef URLSHORTENER_H<br />#define URLSHORTENER_H | ||
//Standard includes<br />#include | //Standard includes<br />#include <QObject><br />#include <QString> | ||
//Project specific includes<br />#include | //Project specific includes<br />#include "filedownloader.h" | ||
class UrlShortener : public QObject<br />{<br /> Q_OBJECT | class UrlShortener : public QObject<br />{<br /> Q_OBJECT | ||
Line 41: | Line 41: | ||
explicit UrlShortener(QObject '''parent = 0); | explicit UrlShortener(QObject '''parent = 0); | ||
<br /> virtual ~UrlShortener(); | <br /> virtual ~UrlShortener(); | ||
<br /> /'''*<br /> * Request short URL from Google API<br /> *<br /> * </code>param sURL<br /> *<br /> * <code>return nothing<br /> | <br /> /'''*<br /> * Request short URL from Google API<br /> *<br /> * </code>param sURL<br /> *<br /> * <code>return nothing<br /> */<br /> void requestShortUrl(QString sURL); | ||
<br /> /'''*<br /> * Get address<br /> *<br /> * </code>return QString<br /> */<br /> QString getShortUrl() const; | <br /> /'''*<br /> * Get address<br /> *<br /> * </code>return QString<br /> */<br /> QString getShortUrl() const; | ||
Line 58: | Line 58: | ||
</code> | </code> | ||
//Project specific includes<br />#include | //Project specific includes<br />#include "urlshortener.h" | ||
//Standard includes<br />#include | //Standard includes<br />#include <QTextStream> | ||
UrlShortener::UrlShortener(QObject '''parent) :<br /> QObject(parent),<br /> m_pDownloader(NULL)<br />{<br /> m_pDownloader = new FileDownloader(this); | UrlShortener::UrlShortener(QObject '''parent) :<br /> QObject(parent),<br /> m_pDownloader(NULL)<br />{<br /> m_pDownloader = new FileDownloader(this); | ||
<br /> connect(m_pDownloader, SIGNAL (downloaded()), SLOT (parseResponse()));<br />}<br />//—————————————————————————— | <br /> connect(m_pDownloader, SIGNAL (downloaded()), SLOT (parseResponse()));<br />}<br />//—————————————————————————— | ||
<br />UrlShortener::~UrlShortener()<br />{<br /> //Nothing to do<br />}<br />//—————————————————————————— | <br />UrlShortener::~UrlShortener()<br />{<br /> //Nothing to do<br />}<br />//—————————————————————————— | ||
<br />void UrlShortener::requestShortUrl(QString sURL)<br />{<br /> //Obtain short URL<br /> QUrl req = QUrl( | <br />void UrlShortener::requestShortUrl(QString sURL)<br />{<br /> //Obtain short URL<br /> QUrl req = QUrl( "http://is.gd/create.php");<br /> req.addQueryItem("format", "simple");<br /> req.addQueryItem("longurl", sURL);<br /> m_pDownloader->downloadUrl(req);<br />}<br />//—————————————————————————— | ||
<br />void UrlShortener::parseResponse()<br />{<br /> QTextStream downloadedStream(m_pDownloader- | <br />void UrlShortener::parseResponse()<br />{<br /> QTextStream downloadedStream(m_pDownloader->downloadedData()); | ||
<br /> m_sShortUrl = downloadedStream.readAll(); | <br /> m_sShortUrl = downloadedStream.readAll(); | ||
<br /> //emit a signal<br /> emit shortUrlRetrieved();<br />}<br />//—————————————————————————— | <br /> //emit a signal<br /> emit shortUrlRetrieved();<br />}<br />//—————————————————————————— | ||
Line 72: | Line 72: | ||
<br /><code> | <br /><code> | ||
<br />h3. Употреба | <br />h3. Употреба | ||
<br /></code><br />m_pUrlShortener = new UrlShortener(this);<br />connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl()));<br />//'''<br />m_pUrlShortener- | <br /></code><br />m_pUrlShortener = new UrlShortener(this);<br />connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl()));<br />//'''<br />m_pUrlShortener->requestShortUrl(QString("http://example.com"));<br /><code> | ||
== Други статии == | == Други статии == |
Revision as of 06:36, 25 February 2015
[toc align_right="yes" depth="2"]
Български English
Съкращаване на URL (URL Shortener)
Общ преглед
Чрез техниката за съкращаване на адреси на Интернет страници (URL) се съкраща дължината на URL и запазва посоката към желаната страница. Използва се често за по-просто представяне на URL-та в социални мрежи и мобилни приложения.
Програмни интерфейси
Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са:
* "Google Url Shortener":http://goo.gl/
* "Bit.ly":http://dev.bitly.com/
* "is.gd and v.gd":http://is.gd/apishorteningreference.php
Съкращаване на URL за Qt
Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и "класът за сваляне на данни от URL":http://wiki.qt.io/Download_Data_from_URL_Bulgarian.
Програмен код
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от "location2sms":https://gitorious.org/location2sms (мобилно приложения с отворен код).
<br />#ifndef URLSHORTENER_H<br />#define URLSHORTENER_H
//Standard includes<br />#include <QObject><br />#include <QString>
//Project specific includes<br />#include "filedownloader.h"
class UrlShortener : public QObject<br />{<br /> Q_OBJECT
private:
FileDownloader* m_pDownloader;
QString m_sShortUrl;
public:
explicit UrlShortener(QObject '''parent = 0);
<br /> virtual ~UrlShortener();
<br /> /'''*<br /> * Request short URL from Google API<br /> *<br /> *
param sURL
*
*
return nothing<br /> */<br /> void requestShortUrl(QString sURL);
<br /> /'''*<br /> * Get address<br /> *<br /> *
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;
}
//——————————————————————————
<br />h3. Употреба
<br />
m_pUrlShortener = new UrlShortener(this);
connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl()));
//
m_pUrlShortener->requestShortUrl(QString("http://example.com"));
Други статии