资源简介
此代码用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解析\Databa
文件 1022 2019-03-14 16:51 http+json解析\Databa
文件 6605 2019-02-15 16:57 http+json解析\HttpClient.cpp
文件 1062 2019-02-15 16:57 http+json解析\HttpClient.h
相关资源
- STM32F207通过http更新固件
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- json读取(json.c)
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- C语言封装的HttpClient接口
评论
共有 条评论