2017-04-23 4 views
0

je la demande cURL suivante:En utilisant HttpClient pour faire HttpGet demande

curl -H "AuthToken: anything" http://localhost:9999/my_service/data?%24expand=total%2Callocated 

Je voudrais utiliser Apache HttpClient pour faire cet appel dans ma demande. Mon code est le suivant:

HttpGet httpGet = new HttpGet(uri); 
httpGet.setConfig(myConfig); 
httpGet.addHeader("-H", "AuthToken: anything"); 
response = this.httpClient.execute(httpGet, httpClientContext); 

Cependant, cela ne fonctionne pas - j'obtenir un code de réponse 400.

Qu'est-ce que je manque ici? Toute aide serait grandement appréciée!

Répondre

1

-H est une option pour curl, pas le nom d'en-tête HTTP réel que votre service attend.

Je pense que vous devez modifier le nom de l'en-tête ici.

httpGet.addHeader("[Header name your service is expecting]", "AuthToken: anything"); 

Et je pense que ce devrait ressembler à ceci

httpGet.addHeader("AuthToken", "anything"); 
1

Êtes-vous sûr de paramètre -H dans

httpGet.addHeader("-H", "AuthToken: anything");

On dirait que -H est un drapeau juste boucle, alors pourriez-vous essayer juste

httpGet.addHeader("AuthToken", "anything");

Je ne sais pas est-ce une cause première, mais cela semble plutôt étrange.