#ios #post #restkit
#iOS #Публикация #набор для отдыха
Вопрос:
Я успешно настроил RestKit, чтобы я мог отправлять сообщения POST на устройство, с которым я работаю.
Я подтвердил, что при использовании Chrome Postman формат сообщения является правильным.
Мне нужно отправить……
id= 87654321amp;content={«ts»:1396215675,»полезная нагрузка»:{«ssid_pass»: «бла»}}amp;t = 12345678
Итак, в почтальоне Chrome он выходит правильно. Но когда я использую RestKit postObject
[manager postObject:self path:@"/tom" parameters:@{@"id" : K_IDVALUE, @"content": myPayload, @"t":K_TVALUE, } success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"Successful Post!");
Порядок, который видит устройство, неверен. Он видит
content={«ts»: 1396215675,»полезная нагрузка»:{«ssid_pass»: «бла»}}amp;id=87654321amp;t = 12345678
Устройство действительно хочет, чтобы содержимое находилось между тегами id и t запроса POST. Есть ли способ заставить RestKit принимать параметры как есть? Похоже, что сообщение размещается в алфавитном порядке (что, я полагаю, происходит при сериализации).
Комментарии:
1. Сервер не должен заботиться о порядке параметров. Если это произойдет, вы можете поделиться кодом сервера, и мы можем взглянуть на это.
2. Это встроенное устройство (а не веб-сервер как таковой), и в данном случае порядок имеет значение в зависимости от того, как его написал встроенный программист.
Ответ №1:
Есть ли способ заставить RestKit принимать параметры как есть?
Что вы передаете в RestiKit:
@{@"id" : K_IDVALUE, … }
это a NSDictionary
, который не имеет понятия о порядке его элементов.
Тогда ваш единственный шанс состоит в том, что RestKit использует указанное вами сопоставление для определения порядка ключей. Я не могу сейчас проверить источники RestKit, чтобы подтвердить эту гипотезу, но вы могли бы просто попробовать (или просто проверить, каков ваш текущий порядок отображения).
Комментарии:
1. Спасибо за указатель. Я изучу, как RestKit выполняет сопоставление, и вернусь ко всем. Ценю это.