我的应用将所需的所有数据保存到存储在设备上的xml文件中。当用户打开应用程序时,它会拉出该xml文件,以便他们保存已保存的数据。
我希望能够将该xml文件上传到服务器,特别是如果可能的话,使用带有GET / POST调用的php脚本。我知道如何发送和检索单个变量值,但不知道如何发送文件,特别是xml文件。
我可以使用cocos2d HttpRequest / HttpClient类来实现这个目的吗?还是有更好的方法。
由于
答案 0 :(得分:2)
我不熟悉cocos2d,但他们的网站有一个通过POST
请求传输文件的例子(这是传输XML等数据的更好方法)。
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。