代码拉取完成,页面将自动刷新
同步操作将从 光明顶魔教工程师/linux_spy 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "baidu_map.h"
void baidu_map::baidu_map_init(void)
{
manager = new QNetworkAccessManager();
post_timer = new QTimer;
connect(post_timer, SIGNAL(timeout()), this, SLOT(post_slot()));
/*post 返回信息*/
connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
//TODO: auto change time
post_timer->start(1000);
}
/*POST 返回信息接收*/
void baidu_map::replyFinished(QNetworkReply *reply)
{
QByteArray byte_data;
//QTextCodec *codec = QTextCodec::codecForName("utf8");
//QString all = codec->toUnicode(reply->readAll());
byte_data= reply->readAll();
prase_ip_info(byte_data);
post_ack = post_list.at(0);
post_list.removeFirst();
emit ip_to_addr_sig();
}
void baidu_map::ip_to_addr(post_ip_info info)
{
post_list.append(info);
}
void baidu_map::post_slot()
{
if(post_list.size() == 0)
return;
post_ip(post_list.at(0).ip);
}
void baidu_map::post_ip(QString ip)
{
QString token_str;
request->setUrl(QUrl("http://api.map.baidu.com/location/ip"));
QByteArray postData;
token_str = "ip="+ip;
token_str +="&ak=yvR4WBKXzCO8K9yN9TdgdYGHMsKBo94i";
postData.append(token_str);
manager->post(*request, postData);
//free(request);
}
void baidu_map::prase_ip_info(QByteArray data)
{
QJsonParseError jsonError;
QJsonDocument doucment = QJsonDocument::fromJson(data, &jsonError); // 转化为 JSON 文档
if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) { // 解析未发生错误
if (doucment.isObject()) { // JSON 文档为对象
QJsonObject object = doucment.object(); // 转化为对象
if (object.contains("address")) {
QJsonValue value = object.value("address");
if (value.isString()) {
QString strName = value.toString();
qDebug() << "address : " << strName;
post_list[0].addr = strName;
}
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。