C++写的MFC调用java服务器的Action

本文介绍了如何在C++ MFC应用中使用Curl库进行HTTP POST请求调用Java SSH框架下的Action,并通过Jsoncpp处理返回的json数据。详细步骤包括Curl和Jsoncpp在VS2010中的配置,以及解决编码转换问题和核心代码展示。
摘要由CSDN通过智能技术生成

最近因为项目需求,需要做一个CS版本的,我们的服务器功能已经全部写好了,使用java写的SSH。本人C++小白,第一次使用C++。

所以在这次功能中,基本是使用第三方库来完成我们的功能。

背景: 1. 基于SSH框架写的后台服务器,Action已经写好了,post方式,需要传递参数,返回包装为json数据。

             2. 前端使用c++写的MFC,通过http 调用java的Action。

             3. 开发工具VS2010 和myeclipse.

用到的第三方库:Curl 和jsoncpp

用到的格式转化:utf-8转成WCHAR   WCHAR转成string 


首先 VS2010导入curl和jsoncpp  此处参考了别人的博客,我有补充。

 curl: http://blog.csdn.net/s200820212/article/details/11595223

 jsoncpp : http://blog.sina.com.cn/s/blog_6294abe7010156v5.html  (使用的第二种方法)


1. VS2010的curl配置

       

第一步:下载CURL 最近的几个版本,我是curl-7.32.0。然后解压到curl-7.32.0文件夹。
第二步:打开curl-7.32.0文件夹,找到vc6curl.dsw。就是VC6工程的文件。
第三步:用2010打开,选择 生成(B)-》生成解决方案(F7) ,不要点三角形那个启动调试
第四步:打开curl-7.32.0\lib\DLL-Debug 找到libcurld.dll和libcurld_imp.lib。

(我会把这个包上传到csnd,见下面链接,免费)

第五步:打开curl-7.21.5\include\找到curl文件和第四步找到的libcurld.dll和libcurld_imp.lib一起放到你新建的工程目录你。比如你新建了个名为:DDDDDD的工程,那么久把他们放到\Visual Studio 2010\Projects\DDDDDD\DDDDDD就是有很多.h 和。CPP的地方
第六步:在你工程MAIN函数前面 include"curl/curl.h" 不行的话就用include<curl/curl.h>
第七步: VS2010编代码的左边,在工程DDDDDD就是上方右击属性-》配置属性-》链接器-》命令行有个附加选项那打入libcurld_imp.lib就OK了

(第七步可以不用,你可以在你需要的cpp中添加     #pragma comment(lib, "libcurld_imp.lib")   )

第八步:VS2010 工程 右键属性---->配置属性------>链接器-------->常规 在附加库目录中添加 libcurld.dll和libcurld_imp.lib所在的目录。

这样 curl就可以使用了。


2. VS2010的json配置

  1. VS2010里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON
  2. 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
  3. 利用VS2010打开jsoncpp-src-0.5.0\makefiles\vs71目录下的jsoncpp.sln,会出现三个Project:jsontest, lib_json, test_lib_json
  4. 编译lib_json,显示编译成功后,在jsoncpp-src-0.5.0\build\vs71\debug\lib_json目录下会生成一个json_vc7
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
环境:Windows XP SP3、 VC++ 6.0、 Windows 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0打开两个工程:一个是SocketServer和一个ClientSocket工程。 2、首先运行服务器端工程,选默认的端口1008 3、然后运行客户端工程,选默认的端口1008和默认的服务器地址 4、再运行多个客户端进程 5、如果一切正常,可以每个客户端的消息发送,我们可以在服务端和各个客户端同步看到消息 实现一个服务器对多个客户端的关键是,在服务端的使用集合CPtrList类用保存客户端的socket对象,思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存客户端的socket对象,而MFC框架提供了CSocket类,它是一个异步通信的类,所以看上去代码比较Java的多线程代码简单的实现了一个对多的即时通讯功能。另外,MFC提供了CSocketFile类和CArchive类与CSocket类实现了C++的网络通讯编程功能。 本示例注释非常详细,所有的辅助类都放一个util目录中,然后在工程中分了一个目录来管理这些辅助类,使用代码非常清晰。手动书部分的代码是按Java的规范书,当然其它代码由IDE生成的,所以是MS的风格,所以当你看代码时,只要是使用“骆驮命名法”的方法都是本人书的功能性代码。 参看的思路:在服务端要从回调方法onAccept读起;而客户端代码主要从OnSendButton方法读起,即可理解整个代码的意思。 阅读对象:具有Java的Socket编程经验的人员,并且希望能够书出比Java效率更高的即时通讯程序的人员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值