отправить / получить файл XML на / с сервера cocos2d-x

Мое приложение сохраняет все необходимые данные в XML-файл, который хранится на устройстве. Когда пользователь открывает приложение, оно извлекает этот XML-файл, чтобы сохранить сохраненные данные.

Я хочу иметь возможность загружать этот XML-файл на сервер, в частности, используя сценарий php с вызовами GET / POST, если это возможно. Я знаю, как отправлять и получать значения одной переменной, но не знаю, как отправить файл, в частности, XML-файл.

Могу ли я использовать классы cocos2d HttpRequest / HttpClient для достижения этой цели? или есть лучший способ.

Спасибо

2

Решение

Я незнаком с cocos2d, но на их сайте есть пример передачи файла через POST запрос (который является лучшим методом для передачи данных, таких как XML).

Из вики cocos3d-x.org:

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.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]