2010-11-17 3 views
0

Ive подключил мой ipad, так что теперь он разговаривает с моим OData.svc, который подается в Интернете. Я могу сделать запрос noraml таблицы без. Но как только я добавляю выбор этого запроса для сокращения передаваемых столбцов, я получаю ошибку http 400. Я могу получить точный url (http://mywebsite.com/OData.svc/Customers?$top=10 & $ select = CustomerName), который он получает и помещает в браузер, и работает без проблем. Есть идеи, что это может быть?IOS Odata SDK Query Select Error

Я добавил выбор в один из запросов в примере Netflix, и он работал нормально, похоже, что-то с моим OData.svc, который не позволяет выбирать из моего приложения ipad (но браузер в порядке).

Заранее спасибо

ответ

0

в $ выбрать требует, чтобы запрос был отправлен с версией 2.0. Поэтому его заголовок DataServiceVersion должен быть установлен в 2.0 ;. Если он установлен в 1.0, запрос будет терпеть неудачу с 400. Вы можете убедиться, что это основная причина, используя какое-то сетевое программное обеспечение для отслеживания, чтобы увидеть тело ответа, в котором должно содержаться сообщение об ошибке, в котором говорится, что функция, которую вы хотите для использования требуется более высокая версия. Он работает в браузере, потому что браузер не отправляет ни одного заголовка версии, и в этом случае сервер предполагает более высокую версию, которую сервер может понять (так 2.0 в этих случаях).