从服务器cocos2d-x发送/检索xml文件

时间:2015-09-30 16:40:58

标签: php xml httprequest cocos2d-x pugixml

我的应用将所需的所有数据保存到存储在设备上的xml文件中。当用户打开应用程序时,它会拉出该xml文件,以便他们保存已保存的数据。

我希望能够将该xml文件上传到服务器,特别是如果可能的话,使用带有GET / POST调用的php脚本。我知道如何发送和检索单个变量值,但不知道如何发送文件,特别是xml文件。

我可以使用cocos2d HttpRequest / HttpClient类来实现这个目的吗?还是有更好的方法。

由于

1 个答案:

答案 0 :(得分:2)

我不熟悉cocos2d,但他们的网站有一个通过POST请求传输文件的例子(这是传输XML等数据的更好方法)。

From the cocos3d-x.org wiki

cocos2d::network::HttpRequest* request = new cocos2d::network::HttpRequest();
request->setUrl("http://www.httpbin.org/post");
request->setRequestType(cocos2d::network::HttpRequest::Type::POST);
request->setResponseCallback( CC_CALLBACK_2(HttpClientTest::onHttpRequestCompleted, this) );

// write the post data
const char* postData = "visitor=cocos2d&TestSuite=Extensions Test/NetworkTest";
request->setRequestData(postData, strlen(postData));

request->setTag("POST test1");
cocos2d::network::HttpClient::getInstance()->send(request);
request->release();

在此示例中,他们使用postData字符串作为数据;你会想用XML内容替换它。

此外,您应该包含以下标准标题:

  • Content-Type: application/xml; charset=utf-8表示数据类型及其编码
  • Content-Length: 12389128显示附加数据的长度(以字节为单位)

您还可以探索基本压缩,这应该会显着缩小XML。