我有一个 HttpServletResponse。我想获取其实体的内容,对其进行更改,然后发送响应。
获取内容并更改它很简单:response.getEntity().getContent()
但是将修改写回实体中,......我不知道我该怎么做。
你有什么建议吗?
我有一个 HttpServletResponse。我想获取其实体的内容,对其进行更改,然后发送响应。
获取内容并更改它很简单:response.getEntity().getContent()
但是将修改写回实体中,......我不知道我该怎么做。
你有什么建议吗?
您可以使用以下方式编写,responseFormat
可以是xml,json
或其他格式。读取responseOutput
asbyte
数组,然后创建header
然后设置内容类型,设置内容长度并写入httpEntity
字节数组。
public HttpEntity<byte[]> writeResponse(String responseOutput, String responseFormat) {
byte[] documentBody = null;
try {
documentBody = responseOutput.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("application", responseFormat));//response format can be "json"
header.setContentLength(documentBody.length);
return new HttpEntity<byte[]>(documentBody, header);
}
*编辑:* org.springframework.http.HttpEntity 被使用。
Apache org.apache.http.HttpEntity示例
public String execute() throws ClientProtocolException, IOException {
if (response == null) {
HttpClient httpClient=HttpClientSingleton.getInstance();
HttpResponse serverresponse=null;
serverresponse=httpClient.execute(httppost);
HttpEntity entity=serverresponse.getEntity();
StringWriter writer=new StringWriter();
IOUtils.copy(entity.getContent(),writer);
response=writer.toString();
}
return response;
}