All Projects → qyvlik → HttpRequest

qyvlik / HttpRequest

Licence: MIT License
HttpRequest such as XMLHttpRequest, but more powerful.

Programming Languages

C++
36643 projects - #6 most used programming language
QML
638 projects
QMake
1090 projects

Projects that are alternatives of or similar to HttpRequest

pardus-store
Pardus Application Store
Stars: ✭ 32 (+33.33%)
Mutual labels:  qml
DeadAscend
A 2D point'n'click-like adventure game written in Qt/QML and Javascript
Stars: ✭ 37 (+54.17%)
Mutual labels:  qml
maxLibQt
A collection of C++ classes and QtQuick QML components for use with the Qt framework.
Stars: ✭ 18 (-25%)
Mutual labels:  qml
CatLearnQt
CatLearnQt,提供QWidget,Quick,网络,串口,基础库和示例。案例软件支持样式切换,与国际化。
Stars: ✭ 63 (+162.5%)
Mutual labels:  qml
QMLTreeView
A TreeView component for QML/QtQuick 2 with a generic TreeModel
Stars: ✭ 21 (-12.5%)
Mutual labels:  qml
qmlweb-parser
A QML parser in JavaScript
Stars: ✭ 24 (+0%)
Mutual labels:  qml
Qt3D-learn
Qt3D-learn
Stars: ✭ 36 (+50%)
Mutual labels:  qml
HttpRequest
Simplified HTTP client, A simplie golang HTTP client library.
Stars: ✭ 134 (+458.33%)
Mutual labels:  httprequest
fluffychat
+++++Moved to GitLab+++++
Stars: ✭ 47 (+95.83%)
Mutual labels:  qml
QtIosCMake
📱 Deploy Qt Application for iOS with a single macro when using CMake.
Stars: ✭ 35 (+45.83%)
Mutual labels:  qml
EEIoT
QML IoT components, for fast and super user friendly IoT projects
Stars: ✭ 38 (+58.33%)
Mutual labels:  qml
QtDemos
This is a demo about Qt5, including Qt Custom Widget, Qt Multithreaded Downloader, QML Video Player(using OpenGL, FFmpeg and SDL2)
Stars: ✭ 18 (-25%)
Mutual labels:  qml
arcgis-runtime-samples-qt
ArcGIS Runtime SDK for Qt samples for Qt Creator.
Stars: ✭ 111 (+362.5%)
Mutual labels:  qml
QPrompt
Personal teleprompter software for all video creators. Built with ease of use, productivity, control accuracy, and smooth performance in mind.
Stars: ✭ 168 (+600%)
Mutual labels:  qml
Lith
WeeChat relay client
Stars: ✭ 32 (+33.33%)
Mutual labels:  qml
qtstatusbar
StatusBar for Qt allows setting the status bar color and theme on Android and iOS.
Stars: ✭ 89 (+270.83%)
Mutual labels:  qml
translating-qml
Demonstration of dynamic switching between languages in QML application.
Stars: ✭ 16 (-33.33%)
Mutual labels:  qml
sp qt libs
C++11/Qt/QML библиотека, предназначенная для разработки мобильных приложенией под Android и iOS
Stars: ✭ 23 (-4.17%)
Mutual labels:  qml
qak
Qak - the QML Aid Kit
Stars: ✭ 20 (-16.67%)
Mutual labels:  qml
Crusta
Fast, modern and minimal desktop web browser with rich features
Stars: ✭ 53 (+120.83%)
Mutual labels:  qml

HttpRequest

HttpRequest use Qt Network module that register in qml env. Such as XMLHttpRequest.

HttpRequest 使用 Qt 的网络模块编写。通过注册到 QML 中,就可以像使用 XMLHttpRequest 那样使用了。

Use in QML

第一种使用方法是,直接实例化 HttpRequest

HttpRequest { id: httpRequest }
function doGet() {

    httpRequest.clear();

    httpRequest.finished.connect(function(){
        httpRequest.finished.disconnect(arguments.callee);
        console.log(httpRequest.responseText.length);
        console.log(httpRequest.responseText);
        // 如果 httpRequest.responseText 内容太长,console.log() 就不会再控制台打印
    });

    httpRequest.error.connect(function(){
        httpRequest.error.disconnect(arguments.callee);
        console.log(httpRequest.statusText);
    });

    httpRequest.timeout.connect(function(){
        httpRequest.timeout.disconnect(arguments.callee);
        console.log("time out");
    });

    httpRequest.open("GET", "https://api.github.com/zen");

    httpRequest.setTimeout(3 * 1000);      // 3 s
    httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    httpRequest.send();
}

注意:实例化的 HttpRequest 可以使用多次,但是每次重新使用前,务必使用 clear() 函数,这个函数会取消上一次还未完成的请求和请求设置。

第二种类似于 XMLHttpRequest

var xhr = HttpRequestFactory.create();

xhr.finished.connect(function(){
    xhr.finished.disconnect(arguments.callee);
    console.log(httpRequest.responseText.length);
    console.log(httpRequest.responseText);
    // 如果 httpRequest.responseText 内容太长,console.log() 就不会再控制台打印
});

xhr.error.connect(function(){
    xhr.error.disconnect(arguments.callee);
    console.log(xhr.statusText);
});

xhr.timeout.connect(function(){
    xhr.timeout.disconnect(arguments.callee);
    console.log("time out");
});

httpRequest.open("GET", "https://api.github.com/zen");

xhr.setTimeout(3 * 1000);      // 3 s

xhr.send();

HttpRequestFactory.create(); 构建的 HttpRequest 会在适当时候被自动回收。

Use In C++

HttpRequest* httpRequest = new HttpRequest();

httpRequest->clear();

QObject::connect(httpRequest, &HttpRequest::finished, [=](){
    qDebug() << httpRequest->getAllResponseHeader();
    QJsonDocument dom = QJsonDocument::fromJson(httpRequest->getResponseText().toUtf8());
    qDebug() << dom.object();

    httpRequest->deleteLater();
});

QObject::connect(httpRequest, &HttpRequest::timeout, [=](){
    qDebug() << " time out";
    httpRequest->deleteLater();
});

QObject::connect(httpRequest, &HttpRequest::error, [=](){
    qDebug() << httpRequest->getStatus();
    qDebug() << httpRequest->getStatusText();
    httpRequest->deleteLater();
});

QByteArray data("?limit=60&offset=0&s=%E7%88%B1&total=true&type=1");

httpRequest->setRequestHeader("Referer", "http://music.163.com/search/");
httpRequest->setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

httpRequest->open("POST", QUrl("http://music.163.com/api/search/get"));

httpRequest->setTimeout(30 * 1000);             // 30s

httpRequest->send(QString(data));
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].