头文件:
#pragma once
/// <summary>
/// 此类作为和使用http连接的server进行交互客户端
/// </summary>
#include <QObject>
class QJsonObject;
class QTimerEvent;
class QJsonObject;
class MTHttpClientPrivate;
class MTHttpClient : public QObject
{
Q_OBJECT
public:
MTHttpClient(QObject* parent = nullptr);
~MTHttpClient();
/*************为了方便json消息的发送,提供两个静态接口函数********/
/// <summary>
/// QString转Json函数
/// </summary>
/// <param name="jsonString">需要转换的数据</param>
/// <param name="outJsonObj">转成功后的json对象</param>
/// <returns></returns>
static bool QstringToJson(const QString& jsonString, QJsonObject& outJsonObj);
/// <summary>
/// Json转QString函数
/// </summary>
/// <param name="jsonObject">需要转换的json对象</param>
/// <returns></returns>
static QString JsonToQstring(const QJsonObject& jsonObject);
/*************为了方便json消息的发送,提供两个静态接口函数********/
/// <summary>
/// 设置Url
/// </summary>
/// <param name="url"></param>
void SetUrl(const QUrl& url);
/// <summary>
/// 发送消息(直到收到回复或发生错才返回)
/// </summary>
/// <param name="sendMsg">发送的消息</param>
/// <param name="replyMsg">收到的回复消息</param>
/// <param name="errMsg">错误信息</param>
/// <param name="timerout">超时时间(ms),默认10s</param>
/// <returns>是否成功</returns>
bool SendMessage(const QString& sendMsg, QJsonObject& replyMsg, QString& errMsg, int timerout = 10000);
signals:
/// <summary>
/// 定时器超时触发
/// </summary>
void SigTimeout(int timerId);
protected:
/// <summary>
/// 处理定时器事件回调
/// </summary>
/// <param name="event"></param>
void DoTimerEventCallback(QTimerEvent