コード例 #1
0
void ClipperNetwork::shortenLink(QString link)
{
    QNetworkRequest request;
    request.setUrl(QUrl(LINK_SHORTEN_URL));
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
    QVariantMap args;
    args["longUrl"] = link;

    QNetworkReply* networkRequest = network->post(request, JSON::serialize(QVariant(args), 4));
    connect(networkRequest, &QNetworkReply::finished, [networkRequest, this]() {
        if (networkRequest->error() == QNetworkReply::NoError)
        {
            QVariantMap replyMap = JSON::parse(networkRequest->readAll()).toMap();
            QString link = replyMap["id"].toString();
            if (!link.isEmpty())
                emit linkReady(link);
            else
            {
                qDebug() << replyMap;
                emit failure(UNKNOWN_ERROR);
            }
        }
        else
            emit failure(networkRequest->errorString());

        networkRequest->deleteLater();
    });
}
コード例 #2
0
void ClipperNetwork::shareText(QString &text)
{
    std::shared_ptr<QNetworkRequest> request(new QNetworkRequest(QUrl(HASTEBIN_PUBLISH_URL)));

    QByteArray data;

    request->setRawHeader("Host", "hastebin.com");
    request->setRawHeader("Content-Type", "text/plain");
    data.append(text);

    QNetworkReply *networkRequest = network->post(*request, data);

    connect(networkRequest, &QNetworkReply::finished, [networkRequest, this]() {
        if (networkRequest->error() == QNetworkReply::NoError)
        {
            QVariantMap replyMap = JSON::parse(networkRequest->readAll()).toMap();
            QString link = replyMap["key"].toString();
            if (!link.isEmpty())
                emit linkReady(HASTEBIN_BASE_URL+link);
            else
            {
                qDebug() << replyMap;
                emit failure(UNKNOWN_ERROR);
            }
        }
        else
            emit failure(networkRequest->errorString());

        networkRequest->deleteLater();
    });
}
コード例 #3
0
ファイル: peersmgr.cpp プロジェクト: ynonp/QuickChat
PeersMgr::PeersMgr(const QHostAddress &server, quint16 port, QObject *parent) :
    QAbstractListModel(parent)
{
    iLink = new QTcpSocket(this);
    iLink->connectToHost(server, port);

    QObject::connect(iLink, SIGNAL(connected()),
                     this, SLOT(linkReady()));

    QObject::connect(iLink, SIGNAL(error(QAbstractSocket::SocketError)),
                     this, SLOT(linkError(QAbstractSocket::SocketError)));

    qDebug() << "trying to connect";
}
コード例 #4
0
void ClipperNetwork::uploadImage(std::shared_ptr<QByteArray> image)
{
    QNetworkRequest *request = new QNetworkRequest(QUrl(IMAGE_UPLOAD_URL));
    QByteArray requestData;

    request->setRawHeader("Host", "deviantsart.com");
    request->setRawHeader("Cache-Control", "no-cache");
    request->setRawHeader("Accept","*/*");
    request->setRawHeader("Content-Type", "multipart/form-data; boundary=--ptkDjQJ3nhyCxEDg");

    requestData.append("----ptkDjQJ3nhyCxEDg\r\n");
    requestData.append("Content-Disposition: form-data; name=\"file\"; filename=\"image.png\"");
    requestData.append("Content-Type: image/png\r\n");
    requestData.append("\r\n");
    requestData.append(*image);
    requestData.append("\r\n----ptkDjQJ3nhyCxEDg--");

    request->setHeader(QNetworkRequest::ContentLengthHeader, requestData.length());

    QNetworkReply *networkRequest = network->post(*request, requestData);

    connect(networkRequest, &QNetworkReply::finished, [networkRequest, this]() {
        if (networkRequest->error() == QNetworkReply::NoError)
        {
            QVariantMap responseMap = JSON::parse(networkRequest->readAll()).toMap();
            QString link = responseMap["url"].toString();
            if (!link.isEmpty())
                emit linkReady(link);
            else
            {
                qDebug() << responseMap;
                emit failure(UNKNOWN_ERROR);
            }
        }
        else
            emit failure(networkRequest->errorString());

        networkRequest->deleteLater();
    });
}