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

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Remove non-functioning "toc" command)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:snippets]]<br />[[Category:HowTo]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
 
[[Category:snippets]]
[[Category:HowTo]]


[toc align_right=&quot;yes&amp;quot; depth=&quot;2&amp;quot;]


'''Български''' [[URL_Shortener|English]]
'''Български''' [[URL_Shortener|English]]
Line 13: Line 15:
== Програмни интерфейси ==
== Програмни интерфейси ==


Има много онлайн услуги и програмни интерфейси за съкращаване на URL. Най-популярни са:<br />* &quot;Google Url Shortener&amp;quot;:http://goo.gl/<br />* &quot;Bit.ly&amp;quot;:http://dev.bitly.com/<br />* &quot;is.gd and v.gd&amp;quot;:http://is.gd/apishorteningreference.php
Има много онлайн услуги и програмни интерфейси за съкращаване на 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 и &quot;класът за сваляне на данни от URL&amp;quot;:http://wiki.qt.io/Download_Data_from_URL_Bulgarian.
Имплементация на съкращаване на URL за Qt, базирана на услугата is.gd и [http://wiki.qt.io/Download_Data_from_URL_Bulgarian класът за сваляне на данни от URL].


=== Програмен код ===
=== Програмен код ===


Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от &quot;location2sms&amp;quot;:https://gitorious.org/location2sms (мобилно приложения с отворен код).
Програмният интерфейс предоставен от is.gd поддържа json, xml и чист текст за просто отвор. За някои случаи като мобилни приложения простия отговор е по-добро решения, защото не е обходима допълнителна обработка на текста. Публикуваната имплементация е от [https://gitorious.org/location2sms location2sms] (мобилно приложения с отворен код).


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


//Standard includes<br />#include &lt;QObject&amp;gt;<br />#include &lt;QString&amp;gt;
//Standard includes
#include <QObject>
#include <QString>


//Project specific includes<br />#include &quot;filedownloader.h&amp;quot;
//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 52:


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 81:
};
};


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


</code>
</code>


//Project specific includes<br />#include &quot;urlshortener.h&amp;quot;
//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());


//Standard includes<br />#include &lt;QTextStream&amp;gt;
m_sShortUrl = downloadedStream.readAll();


UrlShortener::UrlShortener(QObject '''parent) :<br /> QObject(parent),<br /> m_pDownloader(NULL)<br />{<br /> m_pDownloader = new FileDownloader(this);
//emit a signal
<br /> connect(m_pDownloader, SIGNAL (downloaded()), SLOT (parseResponse()));<br />}<br />//——————————————————————————
emit shortUrlRetrieved();
<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( &quot;http://is.gd/create.php&amp;quot;);<br /> req.addQueryItem(&quot;format&amp;quot;, &quot;simple&amp;quot;);<br /> req.addQueryItem(&quot;longurl&amp;quot;, sURL);<br /> m_pDownloader-&gt;downloadUrl(req);<br />}<br />//——————————————————————————
//——————————————————————————
<br />void UrlShortener::parseResponse()<br />{<br /> QTextStream downloadedStream(m_pDownloader-&gt;downloadedData());
 
<br /> m_sShortUrl = downloadedStream.readAll();
QString UrlShortener::getShortUrl() const
<br /> //emit a signal<br /> emit shortUrlRetrieved();<br />}<br />//——————————————————————————
{
<br />QString UrlShortener::getShortUrl() const<br />{<br /> return m_sShortUrl;<br />}<br />//——————————————————————————
return m_sShortUrl;
<br /><code>
}
<br />h3. Употреба
//——————————————————————————
<br /></code><br />m_pUrlShortener = new UrlShortener(this);<br />connect(m_pUrlShortener, SIGNAL (shortUrlRetrieved()), this, SLOT (loadMapShortUrl()));<br />//'''<br />m_pUrlShortener-&gt;requestShortUrl(QString(&quot;http://example.com&amp;quot;));<br /><code>
 
<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();

};

  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;

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

=== Употреба ===

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

Други статии