2015-03-21 1 views
1

J'essaie de faire une requête "select * from accounts" sur salesforce via leur API de repos et j'obtiens une ERREUR 400 Bad Request. Tous mes appels de repos semblent fonctionner mais je ne peux pas introduire une requête. Est-ce que quelqu'un peut jeter un coup d'oeil sur le code et laissez-moi savoir ce qu'ils pensent?Erreur 400 sur requête SOQL via REST

La valeur getSOQLQuery() retourne est:

url /services/data/v28.0/query?q=select+*+from+Account

 HttpClient httpclient = new DefaultHttpClient(); 
     HttpGet get  = new HttpGet(getSOQLQuery()); 
     System.out.println(getSOQLQuery()); 
     get.setHeader("Authorization", "OAuth " + auth.getAuthToken()); 
     get.setHeader("content-type", "application/json"); 

     HttpResponse result = httpclient.execute(get); 
     String json = EntityUtils.toString(result.getEntity(), "UTF-8"); 

     JSONParser parser = new JSONParser(); 
     Object resultObject = parser.parse(json); 


     Object obj = resultObject.toString(); 

     if(result.getStatusLine().getStatusCode() == 200) { 
      resultSet = obj; 
      System.out.println("DONE"); 
     }else{ 
      System.out.println("Error!"); 
       System.out.println(result); 
     } 

Merci!

Répondre

1

SOQL ne prend pas en charge select * vous devez nommer explicitement les champs que vous souhaitez interroger, par ex. sélectionnez id, nom du compte. Vous pouvez utiliser la ressource describe pour rechercher tous les noms de champs si vous souhaitez créer dynamiquement la liste de sélection.

De même, si vous examinez le corps de la réponse 400, un message d'erreur détaillé s'affiche.

+0

Merci beaucoup! Je ne connaissais pas le schéma donc j'utilisais select * pour voir la table. Mais j'aurais dû savoir ce que tu disais tôt ou tard de toute façon. BTW décrire les travaux géniaux !! – user3780616