Estou fazendo um exemplo simples, para mandar um valor via post para uma Servlet mas não aceita:
import java.io.IOException;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/**
* @author fabio.pedrosa
*
*/
public class PesquisaEleitoral extends MIDlet implements CommandListener {
private Form form;
private TextField renda;
/**
*
*/
public PesquisaEleitoral() {
form = new Form("Pesquisa eleitoral");
renda = new TextField("Qual sua renda mensal?","",10,TextField.NUMERIC);
Command ok = new Command("Salvar", Command.OK, 1);
form.addCommand(ok);
form.setCommandListener(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(form);
}
public void sendServlet() throws IOException{
String url = "http://localhost:8080/xxx/servlet?acao=jme";
HttpConnection http = (HttpConnection) Connector.open(url);
OutputStream oStrm = http.openOutputStream();
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setRequestMethod(HttpConnection.POST);
byte data[] = ("&renda=" + renda.getString()).getBytes();
oStrm.write(data);
oStrm.flush();
}
public void commandAction(Command c, Displayable d){
try {
sendServlet();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Simplesmente me gera esse warning no console
Warning: To avoid potential deadlock, operations that may block, such as
networking, should be performed in a different thread than the
commandAction() handler.
O que preciso adaptar nesse código para enviar corretamente, na Servlet estou recebendo via service.
Na Servlet so imprimo o valor:
if(acao.equals("jme")){
System.out.println("chegou do celular");
System.out.println("renda " + request.getParameter("renda"));
}