Как обновить контент HttpEntity?

У меня есть HttpServletResponse. Я хотел бы получить содержание его сущности, изменить его и затем отправить ответ.

Получить контент и изменить его просто: response.getEntity().getContent()

Но записываю изменения в сущность, ... я не понимаю, как я могу это сделать.

У вас есть какие-нибудь предложения?

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

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

Другие вопросы по тегам