RunHttpPost_loginByFace.cpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "RunHttpPost_loginByFace.h"
  2. #include "../user/config.h"
  3. extern config *pconfig;
  4. RunHttpPost_loginByFace::RunHttpPost_loginByFace(InteractiveTask *task, QMutex *mutex)
  5. :RunAbstract(task, mutex)
  6. {
  7. }
  8. void RunHttpPost_loginByFace::run()
  9. {
  10. QByteArray json;
  11. QByteArray outData = InteractiveHttp::http_post_loginByFace();
  12. if (!outData.isEmpty())
  13. {
  14. // 解析是否登录成功
  15. QJsonParseError error;
  16. QJsonDocument jsonDoc = QJsonDocument::fromJson(outData, &error);
  17. if (error.error == QJsonParseError::NoError)
  18. {
  19. if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
  20. {
  21. QJsonObject jsonObjRoot = jsonDoc.object();
  22. if(jsonObjRoot.contains("code"))
  23. {
  24. if(jsonObjRoot.value("code").toInt() == 200)
  25. {
  26. if(jsonObjRoot.contains("token"))
  27. {
  28. QJsonValue value = jsonObjRoot.value("token");
  29. if(value.type() == QJsonValue::String)
  30. {
  31. InteractiveHttp::strToken = value.toString();
  32. QString username = "未知用户";
  33. if(jsonObjRoot.contains("nickName"))
  34. {
  35. QJsonValue name = jsonObjRoot.value("nickName");
  36. if(name.type() == QJsonValue::String)
  37. {
  38. username = name.toString();
  39. }
  40. }
  41. pconfig->username = username;
  42. // 这里为了保证原有逻辑,需调用pro类
  43. json = QString("{\"stat\":0,\"str\":\"登陆成功\",\"name\":\"%1\",\"outh\": 0}").arg(username).toUtf8();
  44. }
  45. else
  46. {
  47. json = QString("{\"stat\":-3,\"str\":\"登陆失败\",\"name\":\"\",\"outh\": 0}").toUtf8();
  48. }
  49. }
  50. }
  51. else
  52. {
  53. // json = QString("{\"stat\":-3,\"str\":\"登陆失败\",\"name\":\"\",\"outh\": 0}").toUtf8();
  54. json = QString("{\"stat\":-2,\"str\":\"%1\",\"name\":\"\",\"outh\": 0}").arg(jsonObjRoot.value("msg").toString()).toUtf8();
  55. }
  56. }
  57. }
  58. }
  59. else
  60. {
  61. json = QString("{\"stat\":-3,\"str\":\"服务器返回数据解析错误\",\"name\":\"\",\"outh\": 0}").toUtf8();
  62. }
  63. }
  64. setRespond(QString(json));
  65. }