Olá pessoal,
estou querendo investigar um problema na comunicação de server com rest e um cliente delphi.
Então, tenho um listener no server que até consegue obter o conteúdo. Mas depois de eu ler o conteúdo acho que ele perdido ou algo assim, pois a requisição não é devidamente completada.
Eis o listener
public class ApplicationListener implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent arg0) {
}
@Override
public void requestInitialized(ServletRequestEvent arg0) {
try {
Logger.info(convertStreamToString(arg0.getServletRequest().getInputStream()));
} catch (IOException e) {
Logger.error("Erro ao ler requisição.", e);
}
}
// este eu peguei de um exemplo na net.
private String convertStreamToString(InputStream is) throws IOException {
if (is != null) {
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(new InputStreamReader(is,
"UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
return writer.toString();
} else {
return "";
}
}
Quando faço a leitura o InputStream o servidor me retorna Codigo 400 Bad Request. Se eu comento a linha que faz a leitura funciona certinho.