2010-11-17 5 views
0

Ive connecté mon ipad afin qu'il parle maintenant à mon OData.svc servi sur le web. Je peux faire une requête noraml d'une table sans. Mais dès que j'ajoute un select à cette requête pour réduire les colonnes en cours de transfert, je reçois une erreur http 400. Je peux obtenir l'URL exacte (http://mywebsite.com/OData.svc/Customers?$top=10 & $ select = CustomerName) il accède et le met dans un navigateur et cela fonctionne sans problème. Des idées ce que cela pourrait être?IOS Odata SDK Erreur de sélection de requête

J'ai ajouté une sélection à l'une des requêtes dans l'exemple Netflix et cela a bien fonctionné, il semble que mon OData.svc ne permette pas d'effectuer des sélections depuis mon application ipad (mais le navigateur fonctionne).

Merci à l'avance

Répondre

0

Le sélectionner $ exige que la demande est envoyée avec la version 2.0. Son en-tête DataServiceVersion doit donc être défini sur 2.0 ;. Si elle est définie sur 1.0, la requête échouera avec 400. Vous pouvez vérifier que c'est la cause première en utilisant un logiciel de suivi de réseau pour voir le corps de la réponse, qui doit contenir un message d'erreur indiquant que la fonction que vous voulez l'utilisation nécessite une version plus élevée. Cela fonctionne à partir du navigateur, car le navigateur n'envoie aucun en-tête de version et dans ce cas, le serveur assume la version supérieure que le serveur peut comprendre (donc 2.0 dans ce cas).