Ici sont quelques points:
Vous pourriez envisager de passer à HttpClient 4 (de manière générale, si vous le pouvez, je ne pense pas que la version 3 est encore activement pris en charge).
500 code d'état d'erreur de serveur, de sorte qu'il pourrait être utile de voir ce que le serveur dit (aucun indice dans le corps de la réponse de l'impression?). Bien qu'il pourrait être causé par votre client, le serveur ne devrait pas échouer cette façon (un code d'erreur 4xx serait plus approprié si la demande est incorrect).
-
Je pense que setDoAuthentication(true)
est la valeur par défaut (pas sûr). Ce qui pourrait être utile à faire est d'essayer de préemption de l'authentification fonctionne mieux:
client.getParams().setAuthenticationPreemptive(true);
Sinon, la principale différence entre curl -d ""
et ce que vous faites en Java, c'est que, en plus de Content-Length: 0
, curl envoie Content-Type: application/x-www-form-urlencoded
. Notez que, en termes de conception, vous devriez probablement vous envoyer une entité avec votre POST
demande de toute façon.