Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
URL Shortener/bg: Difference between revisions
No edit summary |
AutoSpider (talk | contribs) (Remove non-functioning "toc" command) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:snippets]] | {{Cleanup | reason=Auto-imported from ExpressionEngine.}} | ||
[[Category:snippets]] | |||
[[Category:HowTo]] | |||
'''Български''' [[URL_Shortener|English]] | '''Български''' [[URL_Shortener|English]] | ||
Line 13: | Line 15: | ||
== Програмни интерфейси == | == Програмни интерфейси == | ||
Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са: | Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са: | ||
* [http://goo.gl/ Google Url Shortener] | |||
* [http://dev.bitly.com/ Bit.ly] | |||
* [http://is.gd/apishorteningreference.php is.gd and v.gd] | |||
== Съкращаване на URL за Qt == | == Съкращаване на URL за Qt == | ||
Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и | Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и [http://wiki.qt.io/Download_Data_from_URL_Bulgarian класът за сваляне на данни от URL]. | ||
=== Програмен код === | === Програмен код === | ||
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от | Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от [https://gitorious.org/location2sms location2sms] (мобилно приложения с отворен код). | ||
<code> | <code> | ||
#ifndef URLSHORTENER_H | |||
#define URLSHORTENER_H | |||
//Standard includes | //Standard includes | ||
#include <QObject> | |||
#include <QString> | |||
//Project specific includes | //Project specific includes | ||
#include "filedownloader.h" | |||
class UrlShortener : public QObject | class UrlShortener : public QObject | ||
{ | |||
Q_OBJECT | |||
private: | private: | ||
Line 40: | Line 52: | ||
explicit UrlShortener(QObject '''parent = 0); | explicit UrlShortener(QObject '''parent = 0); | ||
virtual ~UrlShortener(); | |||
/'''* | |||
* Request short URL from Google API | |||
* | |||
* </code>param sURL | |||
* | |||
* <code>return nothing | |||
*/ | |||
void requestShortUrl(QString sURL); | |||
/'''* | |||
* Get address | |||
* | |||
* </code>return QString | |||
*/ | |||
QString getShortUrl() const; | |||
signals: | signals: | ||
Line 54: | Line 81: | ||
}; | }; | ||
#endif // URLSHORTENER_H | #endif // URLSHORTENER_H | ||
<code> | |||
</code> | </code> | ||
//Project specific includes | //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; | |||
} | |||
//—————————————————————————— | |||
<code> | |||
=== Употреба === | |||
</code> | |||
m_pUrlShortener = new UrlShortener(this); | |||
connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl())); | |||
//''' | |||
m_pUrlShortener->requestShortUrl(QString("http://example.com")); | |||
<code> | |||
== Други статии == | == Други статии == |
Latest revision as of 12:39, 17 April 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Български English
Съкращаване на 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"));
Други статии