Olá pessoal,
Preciso mandar uma String enorme (uma conversa de chat) para um Servlet, que vai gravá-la em banco. Estou usando para tal uma requisição POST, da seguinte maneira:
/**
* AuthServlet?cmd=gravarLog&cd_atendente=""&nm_cliente=""&email=""
*/
public boolean gravarLog(String log, int cod, String cliente, String mail) {
try {
URL url = new URL(servidor.getServidorAutenticacao() +
"?cmd=gravarLog&cod_atendente=" + cod + "&nm_cliente=" +
URLEncoder.encode(cliente, "UTF-8") + "&email=" +
URLEncoder.encode(mail, "UTF-8"));
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setAllowUserInteraction(false);
DataOutputStream dostream = new DataOutputStream( conn.getOutputStream() );
// POST
dostream.writeBytes( log );
dostream.close();
// Ler Resposta
BufferedReader br = new BufferedReader( new InputStreamReader(conn.getInputStream()) );
StringBuffer buffer = new StringBuffer();
String line;
while ((line = br.readLine())!=null) {
buffer.append(line);
}
String resposta = buffer.toString();
javax.swing.JOptionPane.showMessageDialog( null, resposta );
if ( resposta.equalsIgnoreCase("ok") )
return true;
else
return false;
} catch (Exception ex) {
console.append( ex.toString() + ": " + ex.getMessage() + "\n");
}
return false;
}
No Servlet, eu recebo a String com o seguinte código:
BufferedReader br = request.getReader();
StringBuffer buf = new StringBuffer();
String line;
while ( (line = br.readLine()) != null ) {
buf.append(line);
}
String log = buf.toString();
A String “log” está sempre vazia - “”.
Agradeço desde já a ajuda de vocês.
Rodrigo.