Erro ao mandar dados para uma Servlet(JME)

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"));
}
			

Como diz o erro, ao abrir uma conexao HTTP no Java ME, voce precisa fazer isso em uma Thread diferente da Thread principal.

Agora esta dando essa Exception de Segurança:

java.lang.SecurityException: Application not authorized to access the restricted API
	at com.sun.midp.security.SecurityToken.checkIfPermissionAllowed(+40)
	at com.sun.midp.security.SecurityToken.checkIfPermissionAllowed(+7)
	at com.sun.midp.midletsuite.MIDletSuiteImpl.checkIfPermissionAllowed(+8)
	at com.sun.midp.midlet.MIDletState.<init>(+78)
	at javax.microedition.midlet.MIDletProxy.<init>(+5)
	at javax.microedition.midlet.MIDlet.<init>(+13)
	at PesquisaEleitoral.<init>(+4)
	at PesquisaEleitoral.commandAction(+7)
	at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
	at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
	at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
	at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
	at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+250)

O que preciso configurar para funcionar?

Consegui estava dando um new na classe e gerava a Exception, porem agora estou com problemas para gravar datas.
Quando tento passar gera o seguinte erro:

Uncaught exception java/lang/IllegalArgumentException: Space character in URL.

Separei em 2 classes agora

public class EnviaServlet extends Thread {
	private String renda;
	private int candidato;
	private Date dataNascimento;
	
	
	public EnviaServlet(PesquisaEleitoral pesquisa){
		this.renda = pesquisa.renda.getString();
		this.candidato = pesquisa.voto.getSelectedIndex();
		this.dataNascimento = pesquisa.nascimento.getDate();
		
	}
	public void sendServlet() throws IOException{
		String url = "http://localhost:8080/myapplication/controller?acao=jme"+"&renda="+renda+"&candidato="+candidato+"&nascimento="+dataNascimento;
		HttpConnection http = (HttpConnection) Connector.open(url);
		http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
		http.setRequestMethod(HttpConnection.GET);
		
		OutputStream oStrm = http.openOutputStream();
		String data = "&renda="+renda.getBytes();
		oStrm.write(data.getBytes());
		oStrm.flush();
		
	}
	public void run(){
		try {
			sendServlet();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

Uma outra coisa que notei se eu não passar algum byte com write e flush não chega nada na Servlet por que?

O Comando Flush é usado pra confirmar a escrita na porta.
Se você não fizer isso, pode não funcionar adequadamente.

Abraço

Ps: data, você passa como String e depois converte. Nâo se esqueça de retirar os espaços e caracteres inválidos na URL que vc está chamando.