2010-06-08 37 views
5

我使用org.apache.http.HttpResponse如何创建一个空的虚拟的HttpResponse

我想创建一个空的虚拟resposne,我要利用这个返回时发生,而不是传回空的错误。

我试图创建一个,它已经失去了奇怪的参数。有人可以告诉我如何创建一个。

+1

*“它失去了奇怪的参数”*这太含糊了。你需要澄清这一点。请记住:不要忽略错误,解释它们。他们讲述了原因。你知道,一旦理解了原因,解决方案就显而易见了。我的系统上的 – BalusC 2010-06-08 11:35:40

回答

1

只是实施HttpResponse没有操作方法。

+0

HttpServletResponse不存在,只有HttpResponse – jax 2010-06-08 11:33:10

+0

哦,你使用http-client。好了,更新了。 – Bozho 2010-06-08 11:35:53

+0

无论如何,我已经实现了它,并且有很多方法需要重写。只要将这些留空即可。当我调用HttpEntity entity = response.getEntity();我不希望发生错误,我只想让这个流为空字符串 – jax 2010-06-08 11:37:12

0

实际上,实现一个HttpServletResponse似乎有相当多的工作,并且您将依赖实际的Servlet实现。

我想我会用request.getRequestDispatcher("/dummy.html").forward(request, response)

+2

他正在谈论Apache Commons HttpClient,而不是关于servlet。 http://hc.apache.org/httpcomponents-core/httpcore/apidocs/org/apache/http/HttpResponse.html顺便说一下,在一个servlet上它很容易,只是不要触及响应。 – BalusC 2010-06-08 12:38:26

16

取决于你使用的是什么版本的公共的,你可能会想尝试DefaultHttpResponseFactory。这是图书馆在内部创建一些回复的方式,因此它可能会或可能不会达到您的目的。

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

如何在HttpResponse对象中添加数据 – 2016-02-11 07:38:25

+0

response.setEntity(entity); – Brian 2016-02-11 21:50:38