Domanda

Ive ha collegato il mio iPad in modo che ora parla al mio OData.svc servito sul web. Posso fare una domanda noraml di un tavolo senza. Ma non appena aggiungo una selezionare a tale query per ridurre le colonne di essere trasferito ottengo un HTTP 400 errore. Posso ottenere l'url esatto (http://mywebsite.com/OData.svc/Customers?$top=10&$select=CustomerName) si sta accedendo e metterlo in un browser e funziona senza alcun problema. Delle idee che cosa questo potrebbe essere?

Ho aggiunto una selezione per una delle query nell'esempio Netflix e ha funzionato bene, sembra essere qualcosa con la mia OData.svc quello non è che consente di selezionare da eseguire dal mio ipad app (ma il browser va bene).

Grazie in anticipo

È stato utile?

Soluzione

Il $ selezionare richiede che la richiesta viene inviata con la versione 2.0. Così la sua intestazione DataServiceVersion deve essere impostato su 2,0 ;. Se è impostato a 1,0 la richiesta avrà esito negativo con 400. È possibile verificare che questa è la causa principale utilizzando un qualche tipo di software di rete tracciato per vedere il corpo della risposta, che dovrebbe contenere un messaggio di errore che dice che la funzione che si desidera uso richiede una versione più alta. Funziona dal browser, perché il browser non invia alcuna intestazione di versione e in questo caso il server si assume la versione più alto è il server può capire (in modo da 2.0 in questi casi).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top