• 大小: 6KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: C/C++
  • 标签: c++  http  json  

资源简介

此代码用c++实现了http客户端的编写,其中包括了多字节转utf8(已在ExecuteRequest函数中实现,不用再引用所给的编码转换),get和post两种请求方式,后面有json数据的解析以及实现,详情可去博客https://blog.csdn.net/hfuu1504011020/article/details/88785532

资源截图

代码片段和文件信息

#pragma  once
#include “StdAfx.h“
#include 
#include 
#include 
#include 
#include “HttpClient.h“
#include “DatabaseManage.h“


CHttpClient * CDatabaseManage::m_httpCtrl;

CDatabaseManage::CDatabaseManage(void)
{
m_httpCtrl = NULL;
}

CDatabaseManage::~CDatabaseManage(void)
{
NULL;
}

int CDatabaseManage::login(  LPCTSTR strEmail  LPCTSTR strPwd HWND hwnd)
{

UINT uiRet  = -1;
if (m_httpCtrl == NULL)
{
m_httpCtrl = new CHttpClient();
}
    CString strUrlstrPostData ;
     strUrl.Format(_T(“http://192.168.43.128:3000/Login?content={\“UserName\“:\“%s\“\“PassWord\“:\“%s\“}“)strEmailstrPwd);
    string strResponse=““;
uiRet = m_httpCtrl->HttpGet(strUrlstrPostDatastrResponse);
if ((uiRet == SUCCESS) &&(!strResponse.empty()))
{
Json::Value root;
Json::Reader reader;

if (reader.parse(strResponserootfalse))
{
if (root.isMember(“errorCode“))
{
string nCommandId = root[“errorCode“].asString();
    if (strcmp((char *)nCommandId.c_str()(“0x0000“)))
    {
    return FAILURE;
    }
}
     if (root.isMember(“content“))
{
                     Json::Value jsResult=root[“content“];
  UINT nId;
  string userName;
  if (jsResult.isMember(“Employee_Index“))
  {
                            nId = jsResult[“Employee_Index“].asInt();
  }
  if (jsResult.isMember(“UserName“))
  {
   userName = jsResult[“UserName“].asString();
  }
  CA2T szr(userName.c_str());
::SendMessage(hwndCM_GETUSERIDANDNAME(WPARAM)nId(LPARAM)(LPCTSTR)szr);
}
 }
}
return uiRet;
}


int CDatabaseManage::QueryMRInBooked( CString roomIdCString data HWND hwnd)
{
    TMRBookedInfo   tmrBookedInfo;
TMRBookedInfoArray  tmrBookedInfoArray;
tmrBookedInfoArray.clear();
UINT uiRet  = -1;
if (m_httpCtrl == NULL)
{
m_httpCtrl = new CHttpClient();
}
CString strUrlstrPostData ;
strUrl.Format(_T(“http://192.168.43.128:3000/QueryConferenceRecord?content={\“Conference_Index\“:\“%s\“\“RecordTime\“:\“%s\“}“)roomIddata);
string strResponse=““;
uiRet = m_httpCtrl->HttpGet(strUrlstrPostDatastrResponse);
if ((uiRet == SUCCESS) &&(!strResponse.empty()))
{
Json::Value root;
Json::Reader reader;

if (reader.parse(strResponserootfalse))
{

if (root.isMember(“content“))
{
Json::Value jsResult=root[“content“];
if (jsResult.size()==0)
{
return 0;
}
uiRet = jsResult.size();
for(int i=0;i {
if (jsResult[i].isMember(“Index“))
{
                           tmrBookedInfo.uiIdx = jsResult[i][“Index“].asInt();
}
if (jsResult[i].isMember(“Subject“))
{
tmrBookedInfo.strObj = jsResult[i][“Subject“].asCString();
}
if (jsResult[i].isMember(“BeginTime“))
{
tmrBookedInfo.uiBeginTime = jsResult[i][“BeginTime“].asCString();

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-25 09:21  http+json解析\
     文件        7400  2019-03-18 09:06  http+json解析\DatabaseManage.cpp
     文件        1022  2019-03-14 16:51  http+json解析\DatabaseManage.h
     文件        6605  2019-02-15 16:57  http+json解析\HttpClient.cpp
     文件        1062  2019-02-15 16:57  http+json解析\HttpClient.h

评论

共有 条评论