mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-14 04:42:03 +08:00
!14 星火商店搜索功能
* 更换搜索服务器域名为星火的域名 * 更新搜索服务器为线上服务器 * 完成搜索功能 * 解决搜索结果图标锯齿问题 * 更新appitem的样式 * 完成应用搜索列表的滚动问题 * 合并master分支 * 添加一些文件到忽略列表 * 更新项目结构 * 更新搜索列表UI * 添加 QtNetworkService库
This commit is contained in:
115
third-party/QtNetworkService/HttpRequest.h
vendored
Normal file
115
third-party/QtNetworkService/HttpRequest.h
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
/**********************************************************
|
||||
Author: Qt君
|
||||
微信公众号: Qt君(文章首发)
|
||||
Website: qtbig.com(后续更新)
|
||||
Email: 2088201923@qq.com
|
||||
QQ交流群: 732271126
|
||||
LISCENSE: MIT
|
||||
**********************************************************/
|
||||
#ifndef HTTP_REQUEST_H
|
||||
#define HTTP_REQUEST_H
|
||||
|
||||
#include "HttpResponse.h"
|
||||
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QJsonObject>
|
||||
#include <QDebug>
|
||||
|
||||
namespace AeaQt {
|
||||
|
||||
#ifdef QT_APP_DEBUG
|
||||
#define log_debugger qDebug().noquote().nospace() \
|
||||
<< "[AeaQt::Network] Debug: -> " \
|
||||
<< "function: " << __func__ << "; " \
|
||||
<< "line: " << __LINE__ << "; "
|
||||
#else
|
||||
#define log_debugger QString()
|
||||
#endif
|
||||
|
||||
#define log_warning qWarning().noquote().nospace() \
|
||||
<< "[AeaQt::Network] Warning: -> " \
|
||||
<< "function: " << __func__ << "; " \
|
||||
<< "line: " << __LINE__ << "; "
|
||||
|
||||
class HttpClient;
|
||||
|
||||
class HttpRequest
|
||||
{
|
||||
public:
|
||||
enum BodyType {
|
||||
None = 0, // This request does not have a body.
|
||||
X_Www_Form_Urlencoded, // x-www-form-urlencoded
|
||||
Raw_Text_Json, // application/json
|
||||
};
|
||||
|
||||
explicit HttpRequest(QNetworkAccessManager::Operation op, HttpClient *jsonHttpClient);
|
||||
virtual ~HttpRequest();
|
||||
|
||||
HttpRequest &url(const QString &url);
|
||||
HttpRequest &header(const QString &key, const QVariant &value);
|
||||
HttpRequest &headers(const QMap<QString, QVariant> &headers);
|
||||
|
||||
HttpRequest &queryParam(const QString &key, const QVariant &value);
|
||||
HttpRequest &queryParams(const QMap<QString, QVariant> ¶ms);
|
||||
|
||||
/* Mainly used for identification */
|
||||
HttpRequest &userAttribute(const QVariant &value);
|
||||
|
||||
HttpRequest &body(const QVariantMap &content);
|
||||
HttpRequest &body(const QJsonObject &content);
|
||||
HttpRequest &body(const QByteArray &content);
|
||||
|
||||
/*
|
||||
* @onRespone slot support type: void function(QVariantMap resultMap) OR
|
||||
* void function(QByteArray resultData) OR
|
||||
* void function(QNetworkReply* reply)
|
||||
* note: The same type is only triggered once
|
||||
*/
|
||||
HttpRequest &onResponse(const QObject *receiver, const char *slot, HttpResponse::SupportMethod type = HttpResponse::AutoInfer);
|
||||
HttpRequest &onResponse(std::function<void (QNetworkReply*)> lambda);
|
||||
HttpRequest &onResponse(std::function<void (QVariantMap)> lambda);
|
||||
HttpRequest &onResponse(std::function<void (QByteArray)> lambda);
|
||||
HttpRequest &onResponse(std::function<void (qint64, qint64)> lambda);
|
||||
/*
|
||||
* @onError slot support type: void function(QNetworkReply::NetworkError error)
|
||||
* void function(QString errorString);
|
||||
* void function(QNetworkReply::NetworkError error, QNetworkReply* reply);
|
||||
* void function(QString errorString, QNetworkReply* reply);
|
||||
* note: The same type is only triggered once
|
||||
*/
|
||||
HttpRequest &onError(const QObject *receiver, const char *slot);
|
||||
HttpRequest &onError(std::function<void (QNetworkReply::NetworkError)> lambda);
|
||||
HttpRequest &onError(std::function<void (QString)> lambda);
|
||||
HttpRequest &onError(std::function<void (QNetworkReply::NetworkError, QNetworkReply*)> lambda);
|
||||
HttpRequest &onError(std::function<void (QString, QNetworkReply*)> lambda);
|
||||
|
||||
/**
|
||||
* @brief msec <= 0, disable timeout
|
||||
* msec > 0, enable timeout
|
||||
*/
|
||||
HttpRequest &timeout(const int &msec = -1);
|
||||
|
||||
/**
|
||||
* @brief Block current thread, entering an event loop.
|
||||
*/
|
||||
HttpRequest &block();
|
||||
|
||||
HttpResponse *exec();
|
||||
|
||||
private:
|
||||
HttpRequest();
|
||||
HttpRequest &onResponse(QVariant lambda);
|
||||
|
||||
private:
|
||||
QNetworkRequest m_networkRequest;
|
||||
QByteArray m_body;
|
||||
QNetworkAccessManager::Operation m_op;
|
||||
HttpClient *m_httpService;
|
||||
int m_timeout;
|
||||
bool m_isBlock;
|
||||
QMultiMap<HttpResponse::SupportMethod, QPair<QString, QVariant>> m_slotsMap;
|
||||
};
|
||||
|
||||
}
|
||||
#endif // HTTP_REQUEST_H
|
||||
Reference in New Issue
Block a user