Pergunta

Eu conectei meu iPad para que agora esteja conversando com o meu Odata.svc servido na web. Eu posso fazer uma consulta Noraml de uma mesa sem. Mas assim que eu adiciono uma seleção a essa consulta para reduzir as colunas que estão sendo transferidas, recebo um erro HTTP 400. Eu posso obter o URL exato (http://mywebsite.com/odata.svc/customers?$top=10&$select=customername) que está acessando e colocá -lo em um navegador e funciona sem problemas. Alguma ideia do que isso seja?

Adicionei uma seleção a uma das consultas no exemplo do Netflix e funcionou bem, parece ser algo com o meu odata.svc que não está permitindo que as seleções sejam executadas no meu aplicativo iPad (mas o navegador está bem).

desde já, obrigado

Foi útil?

Solução

O $ select requer que a solicitação seja enviada com a versão 2.0. Portanto, seu cabeçalho DataServiceVersion deve ser definido como 2.0;. Se estiver definido como 1.0, a solicitação falhará com 400. Você pode verificar se essa é a causa raiz usando algum tipo de software de rastreamento de rede para ver o corpo da resposta, que deve conter uma mensagem de erro dizendo que o recurso que você deseja O uso requer uma versão superior. Funciona no navegador, porque o navegador não envia nenhum cabeçalho de versão e, nesse caso, o servidor assume a versão superior que o servidor pode entender (então 2.0 nesses casos).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top