URL Shortener/bg: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:snippets]]<br />[[Category:HowTo]]
[[Category:snippets]]
[[Category:HowTo]]


[toc align_right="yes" depth="2"]
[toc align_right="yes" depth="2"]
Line 13: Line 14:
== Програмни интерфейси ==
== Програмни интерфейси ==


Има много онлайн услуги и програмни интерфейси за съкращаване на 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. Най-популярни са:
* "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 ==
Line 23: Line 27:
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от "location2sms":https://gitorious.org/location2sms (мобилно приложения с отворен код).
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от "location2sms":https://gitorious.org/location2sms (мобилно приложения с отворен код).


<code><br />#ifndef URLSHORTENER_H<br />#define URLSHORTENER_H
<code>
#ifndef URLSHORTENER_H
#define URLSHORTENER_H


//Standard includes<br />#include <QObject><br />#include <QString>
//Standard includes
#include <QObject>
#include <QString>


//Project specific includes<br />#include "filedownloader.h"
//Project specific includes
#include "filedownloader.h"


class UrlShortener : public QObject<br />{<br /> Q_OBJECT
class UrlShortener : public QObject
{
Q_OBJECT


private:
private:
Line 40: Line 51:


explicit UrlShortener(QObject '''parent = 0);
explicit UrlShortener(QObject '''parent = 0);
<br /> virtual ~UrlShortener();
 
<br /> /'''*<br /> * Request short URL from Google API<br /> *<br /> * </code>param sURL<br /> *<br /> * <code>return nothing<br /> */<br /> void requestShortUrl(QString sURL);
virtual ~UrlShortener();
<br /> /'''*<br /> * Get address<br /> *<br /> * </code>return QString<br /> */<br /> QString getShortUrl() const;
 
/'''*
* 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 80:
};
};


#endif // URLSHORTENER_H<br /><code>
#endif // URLSHORTENER_H
<code>


</code>
</code>


//Project specific includes<br />#include "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();


//Standard includes<br />#include <QTextStream>
//emit a signal
emit shortUrlRetrieved();
}
//——————————————————————————


UrlShortener::UrlShortener(QObject '''parent) :<br /> QObject(parent),<br /> m_pDownloader(NULL)<br />{<br /> m_pDownloader = new FileDownloader(this);
QString UrlShortener::getShortUrl() const
<br /> connect(m_pDownloader, SIGNAL (downloaded()), SLOT (parseResponse()));<br />}<br />//——————————————————————————
{
<br />UrlShortener::~UrlShortener()<br />{<br /> //Nothing to do<br />}<br />//——————————————————————————
return m_sShortUrl;
<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->downloadedData());
//——————————————————————————
<br /> m_sShortUrl = downloadedStream.readAll();
 
<br /> //emit a signal<br /> emit shortUrlRetrieved();<br />}<br />//——————————————————————————
<code>
<br />QString UrlShortener::getShortUrl() const<br />{<br /> return m_sShortUrl;<br />}<br />//——————————————————————————
 
<br /><code>
h3. Употреба
<br />h3. Употреба
 
<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>
</code>
m_pUrlShortener = new UrlShortener(this);
connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl()));
//'''
m_pUrlShortener->requestShortUrl(QString("http://example.com"));
<code>


== Други статии ==
== Други статии ==

Revision as of 12:12, 25 February 2015


[toc align_right="yes" depth="2"]

Български English

Съкращаване на URL (URL Shortener)

Общ преглед

Чрез техниката за съкращаване на адреси на Интернет страници (URL) се съкраща дължината на URL и запазва посоката към желаната страница. Използва се често за по-просто представяне на URL-та в социални мрежи и мобилни приложения.

Програмни интерфейси

Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са:

Съкращаване на 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 (мобилно приложения с отворен код).

#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();

};

  1. endif // URLSHORTENER_H

//Project specific includes

  1. include "urlshortener.h"

//Standard includes

  1. 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;

} //——————————————————————————

h3. Употреба

m_pUrlShortener = new UrlShortener(this); connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl())); // m_pUrlShortener->requestShortUrl(QString("http://example.com"));

Други статии