请问如何在VC中使用HTTP的POST模式获得JSON数据?

lengx7 2019-02-20 09:17:21
网站API的调用
URL
http://域名/API/GetCunkuan

Method
POST

Description
查询API账户余额接口

Request Param List
Name Identifier Type Remark
username string 用户名
sign string MD532签名
加密参数sid string sid字符串

Response Param List
Name Identifier Type Remark
status string 返回ok代表获取成功,否则返回错误信息
cunkuan array<object> API账户存款




VC代码:
CString   CHttpClient::doPost(CString   href)   
{
CString httpsource="";
CInternetSession session1;
CHttpConnection* conn1=NULL;
CHttpFile* pFile = NULL;
CString strServerName;
CString strObject;
INTERNET_PORT nPort;
DWORD dwServiceType;
AfxParseURL((LPCTSTR)href,dwServiceType, strServerName, strObject, nPort);
DWORD retcode;
char* outBuff = CONTENT.GetBuffer(1000);
try
{
conn1 = session1.GetHttpConnection(strServerName,nPort);
pFile = conn1->OpenRequest(0,strObject,NULL,1,NULL,"HTTP/1.1",INTERNET_FLAG_EXISTING_CONNECT|INTERNET_FLAG_NO_AUTO_REDIRECT);
pFile -> AddRequestHeaders("Content-Type: application/json");
pFile -> AddRequestHeaders("Accept: application/json");
pFile -> SendRequest(NULL,0,outBuff,strlen(outBuff)+1);
pFile -> QueryInfoStatusCode(retcode);
}
catch (CInternetException * e){};
if(pFile)
{
CString text;
for(int i=0;pFile->ReadString(text);i++)
{
httpsource=httpsource+text+"/r/n";
}
pFile->Close();
}else
{

}
return httpsource;
delete pFile;
delete conn1;
session1.Close();
}

void CHttpClient::addParam(CString name, CString value)
{
names.AddTail((LPCTSTR)name);
values.AddTail((LPCTSTR)value);
CString eq="=";
CString an="&";
CONTENT=CONTENT+name+eq+value+an;

CL=CONTENT.GetLength();
}








CString TName,SingStr,SidStr;
CHttpClient conn;
CString value="http://www.com/API/GetCunkuan";
CString rstr="";
TName="123456789";
SingStr="123456789";
SidStr="123456789";
conn.addParam("username",TName);
conn.addParam("sign",SingStr);
conn.addParam("sid",SidStr);
rstr=conn.doPost(value);



使用后rstr返回
{"status":"无效的 JSON 基元: username。","cunkuan":0}/r/n


是哪里不对有需要修改的地方,还望各位大神指点
...全文
796 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lengx7 2019-03-28
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
从HTTP四种POST 提交数据方式,引申JSON与JSONP区别

虽然最后还是没有搞定,不过也谢谢了
《VMware vSAN 6.7 超融合技术规划与部署》课程共分为“上集”和“下集”两部分,本套视频为“上集”部分,从零基础讲起,由浅入深,是vSAN技术入门与提高学习推荐课程。 《VMware vSAN 6.7 超融合技术规划与部署》“上集”部分具体课程章节如下。 第1章 《vSAN技术简介》主要内容本章主要讲解了vSAN的基本理论知识,通过理论知识的学习,可以理解vSAN设计思想,熟悉vSAN 术语和定义,了解Virtual SAN和传统存储区别,了解Virtual SAN部署类型。 第2章 《启用 vSAN 的要求》主要内容本章主要讲解了启用vSAN的要求,通过学习,可以掌握启用vSAN的存储要求,掌握启用vSAN的群集要求,掌握启用vSAN的网络要求,掌握启用vSAN的许可证要求。 第3章 《实验环境构建》主要内容本章主要通过实验的方式讲解了构建vSAN环境的的三种不同方法。通过本章学习,可以熟悉实验环境规划和磁盘拓扑设计、了解使用 vCenter Server Appliance 部署 vSAN的方法、掌握构建实验环境的方法、掌握信任vCenter根证书的方法、掌握ESXi、vCenter、vSAN的许可证分配方法、掌握配置vCenter Server虚拟机随ESXi主机启动的方法、掌握创建vSAN网络环境的操作方法、掌握声明磁盘的操作方法、掌握使用快速入门功能配置并扩展 vSAN 群集的操作方法、掌握在现有群集上启用vSAN的操作方法。 第4章 《设计和优化 vSAN 群集》主要内容本章主要讲解了设计和优化vSAN群集的技巧。通过本章学习,您能够了解vSAN 群集的特性,掌握创建 vSAN 群集要求,了解vSAN存储组件设计和大小调整注意事项,掌握vSAN 群集的设计注意事项,掌握设计vSAN 网络注意事项,掌握创建多磁盘组操作方法,了解使用引导设备和 vSAN的要求。 第5章 《配置和管理 vSAN 群集》主要内容本章主要讲解了配置和管理vSAN群集的方法。通过本章学习,您可以掌握使用 vSAN 和 vSphere HA的操作方法、掌握关闭并重新启动 vSAN 群集的操作方法、掌握禁用 vSAN的操作方法、掌握编辑 vSAN 设置的方法、掌握查看 vSAN 数据存储的操作方法、掌握将文件或文件夹上载到 vSAN 数据存储的操作方法、掌握从 vSAN 数据存储下载文件和文件夹的方法。 第6章 《使用 vSAN 策略》主要内容本章主要讲解了vSAN环境虚拟机存储策略的相关理论和实践知识。通过本章学习,可以了解vSAN 存储策略理论知识,掌握在vSAN环境创建和更改虚拟机存储策略的方法,学会在标准vSAN群集环境各种高可用性的使用方法。 第7章 《双主机vSAN群集》主要内容本章主要讲解双主机vSAN群集的理论和实践知识。通过本章学习,可以了解双主机vSAN 群集用途,掌握双主机vSAN群集构建过程,掌握双主机vSAN群集结合HA(High Availability)功能实现高可用性的方法,掌握双主机vSAN群集结合FT(Fault Tolerance)功能实现容错的方法(双活)。 后续:在上集学习完成后,如果您对vSAN虚拟化技术有更高追求,想更加深入的学习提高,可以继续学习《VMware vSAN 6.7 超融合技术规划与部署》“下集”部分。下集部分安排的内容主要有:使用延伸群集将数据存储扩展到两个站点、vSAN延伸群集策略、管理 vSAN 群集的故障域、管理 vSAN 群集、使用 vSAN iSCSI 目标服务、vSAN 群集的设备管理、提高 vSAN 群集的空间效率、vSAN监控等。 VMware vSAN 6.7 超融合技术规划与部署(上集):https://edu.csdn.net/course/detail/35188VMware vSAN 6.7 超融合技术规划与部署(下集):https://edu.csdn.net/course/detail/35191

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧