2010-06-08 3 views
5

J'utilise org.apache.http.HttpResponseComment puis-je créer un HttpResponse factice vide

Je veux créer un resposne factice vide, je vais l'utiliser pour revenir en cas d'erreur au lieu de passer en arrière null .

J'ai essayé d'en créer un et il a perdu des params étranges. Quelqu'un peut-il me dire comment en créer un.

+1

* "il a perdu des paramètres bizarres" * c'est trop vague. Vous devez clarifier cela plus. Gardez à l'esprit: n'ignorez pas les erreurs, interprétez-les. Ils disent quelque chose sur la cause. Vous savez, une fois qu'une cause est comprise, la solution est évidente. – BalusC

Répondre

1

Implémentez simplement HttpResponse avec des méthodes non-op.

+0

sur mon système HttpServletResponse n'existe pas, seulement HttpResponse – jax

+0

oh, vous utilisez http-client. bien, mis à jour. – Bozho

+0

De toute façon, je l'ai implémenté et il y a beaucoup de méthodes qui doivent être surchargées. Est-ce correct de laisser ces espaces vides? Quand j'appelle HttpEntity entity = response.getEntity(); Je ne veux pas qu'une erreur se produise, je veux juste que le flux soit une chaîne vide – jax

0

En effet, l'implémentation d'une HttpServletResponse semble être un travail assez important, et vous dépendrez de l'implémentation réelle de Servlet.

Je pense que j'utiliser request.getRequestDispatcher("/dummy.html").forward(request, response)

+2

Il parle d'Apache Commons HttpClient, pas de servlets. http://hc.apache.org/httpcomponents-core/httpcore/apidocs/org/apache/http/HttpResponse.html Au fait, sur une servlet, ce serait facile, mais ne touchez pas à la réponse. – BalusC

16

Selon la version des communes que vous utilisez, vous pouvez essayer DefaultHttpResponseFactory. C'est ainsi que la bibliothèque crée certaines de ses réponses en interne, ce qui peut ou non servir vos objectifs.

import org.apache.http.HttpStatus; 
import org.apache.http.HttpResponse; 
import org.apache.http.HttpResponseFactory; 
import org.apache.http.HttpVersion; 
import org.apache.http.impl.DefaultHttpResponseFactory; 
import org.apache.http.message.BasicStatusLine; 

HttpResponseFactory factory = new DefaultHttpResponseFactory(); 
HttpResponse response = factory.newHttpResponse(new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, null), null); 
+1

COMMENT AJOUTER DES DONNÉES DANS L'OBJET HttpResponse –

+0

response.setEntity (entity); – Brian