Как обновить контент 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;
}