我需要从一个 url 获取一个 json 文件,将其填充到 QtNetworkReply *reply 中并在连接的函数中发送回复以将其转换为 QbyteArray 以解析我的 Json 响应。
但是当我进入连接的函数时,我无法用该回复填充 QByteArray(始终为空)这是我的代码:
int main(int ac, char *av[])
{
Borne borne(ac, av);
reply myReply;
QNetworkAccessManager networkManager;
QUrl url("http://vps202498.ovh.net:8080/ws/rest/v.1/stores/categories/150/products");
QNetworkRequest request;
request.setUrl(url);
myReply._reply = networkManager.get(request);
QObject::connect(myReply._reply, SIGNAL(finished()), &myReply, SLOT(fonction()));
myReply._reply->finished();
exit(1);
if (borne.initialize() == false)
return (false);
return (borne._app->exec());
}
这是我的连接功能:
IProduct *reply::fonction()
{
QByteArray List;
std::cout << "connected" << std::endl;
List = _reply->readAll();
if (List.isNull())
exit(6);
return (NULL);
}
我的 .H :
class reply : public QObject
{
Q_OBJECT
public:
reply() {};
~reply() {};
QNetworkReply *_reply;
public slots:
IProduct *fonction();
private :
};
我不能 std::cout “已连接”,但总是退出并显示错误日志“6”。
我真的不知道我在哪里做错了(我习惯于 C,而不是 Cpp),我已经阅读了所有关于它的 Qt 人,但无法弄清楚出了什么问题。有任何想法吗?
谢谢你,并为薄弱的技能和英语道歉