如何更新HttpEntity内容?

时间:2015-02-12 16:26:03

标签: servlets httpentity

我有一个HttpServletResponse。我想获取其实体的内容,更改它然后发送响应。

获取内容并进行更改非常简单:response.getEntity().getContent()

但是将修改写回实体,......我不知道如何做到这一点。

你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式书写,responseFormat可以是xml,json或其他格式。阅读responseOutput作为byte数组,然后创建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 example

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;
}

IOUtils.copy