2010-06-08 84 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