Cocos2d-x与服务器端数据交互(一)

本文介绍了一种使用Curl库从服务器下载数据并保存到本地的方法。通过C++代码实现了一个简单的例子,演示了如何初始化Curl会话、设置URL以及指定写入文件的回调函数。

从服务器端下载数据,保存到本地

 

加入Curl类库,在引擎中自带有

 

CurlUtils.h

 

Cpp代码 复制代码  收藏代码
  1. #pragma once   
  2. #include "curl.h"   
  3. class CurlUtils   
  4. {   
  5. public:   
  6.     static void begin();   
  7.     static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream);   
  8. };  
#pragma once
#include "curl.h"
class CurlUtils
{
public:
	static void begin();
	static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream);
};
 

CurlUtils.cpp

 

Cpp代码 复制代码  收藏代码
  1. #include "myheader.h"   
  2. #include "CurlUtils.h"   
  3. #include "curl.h"   
  4. #include "cocos2d.h"   
  5. using namespace std;   
  6. using namespace cocos2d;   
  7. void CurlUtils::begin()   
  8. {   
  9.     CURL *curl;   
  10.     CURLcode res;   
  11.     curl = curl_easy_init();   
  12.     if (curl!=NULL)   
  13.     {   
  14.         curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.104/Test/manager/addtest.action?userName=12&password=12");   
  15.         curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);    
  16.         res = curl_easy_perform(curl);   
  17.   
  18.     }   
  19.   
  20.     curl_easy_cleanup(curl);   
  21. }   
  22.   
  23. size_t CurlUtils::write_data(void *ptr, size_t size, size_t nmemb, void *stream)    
  24. {   
  25.     FILE *fp=fopen("E:\\test.txt","w");   
  26.     int written = fwrite(ptr, size, nmemb, (FILE *)fp);   
  27.     CCLog("close");   
  28.     fclose(fp);   
  29.     return written;   
  30. }  
#include "myheader.h"
#include "CurlUtils.h"
#include "curl.h"
#include "cocos2d.h"
using namespace std;
using namespace cocos2d;
void CurlUtils::begin()
{
	CURL *curl;
	CURLcode res;
	curl = curl_easy_init();
	if (curl!=NULL)
	{
		curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.104/Test/manager/addtest.action?userName=12&password=12");
		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); 
		res = curl_easy_perform(curl);

	}

	curl_easy_cleanup(curl);
}

size_t CurlUtils::write_data(void *ptr, size_t size, size_t nmemb, void *stream) 
{
	FILE *fp=fopen("E:\\test.txt","w");
	int written = fwrite(ptr, size, nmemb, (FILE *)fp);
	CCLog("close");
	fclose(fp);
	return written;
}

 

调用:CurlUtils::begin();

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值