Мое приложение сохраняет все необходимые данные в XML-файл, который хранится на устройстве. Когда пользователь открывает приложение, оно извлекает этот XML-файл, чтобы сохранить сохраненные данные.
Я хочу иметь возможность загружать этот XML-файл на сервер, в частности, используя сценарий php с вызовами GET / POST, если это возможно. Я знаю, как отправлять и получать значения одной переменной, но не знаю, как отправить файл, в частности, XML-файл.
Могу ли я использовать классы cocos2d HttpRequest / HttpClient для достижения этой цели? или есть лучший способ.
Спасибо
Я незнаком с 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.
Других решений пока нет …