Estou tentando faz 2 semanas fazer um programa simples - o mais simples possivel - que conecta numa página em PHP, envia uma string e recebe uma resposta e exibe isso num StringItem.
No emulador da Nokia S40 funciona que é uma beleza. Porém ao copiar o programa para o celular (Nokia 6060) e dar permissão para ele poder usar a rede ele retorna Illegal Argument java/lang/IllegalArgumentException.
Observação: se eu uso o browser do celular para testar - funciona - isso quer dizer não é problema de conexão do celular
Fonte completo do programa:
[code]import java.io.;
import javax.microedition.io.;
import javax.microedition.lcdui.;
import javax.microedition.midlet.;
public class Principal extends MIDlet implements CommandListener {
private Display display;
private String url = "http://www.market.com.br/junior/enquete.php?usuario=";
private Form f;
private TextField userField, respostaField;
private Command consultarCommand;
public Principal() {
display = Display.getDisplay(this);
// monta fields
userField = new TextField("Usuário" , "Junior", 20, TextField.ANY);
respostaField = new TextField("Resposta", "", 20, TextField.ANY);
// monta form
f = new Form("Teste de HTTP");
f.append(userField);
f.append(respostaField);
// comando
consultarCommand = new Command("Consultar", Command.SCREEN, 1);
f.addCommand(consultarCommand);
f.setCommandListener(this);
// form é o display atual
display.setCurrent(f);
}
public void commandAction(Command command, Displayable displayable) {
if (command == consultarCommand) {
String usuario = userField.getString().toLowerCase();
try {
testGET(url + usuario);
} catch (IOException e) {
System.out.println("IOException " + e);
e.printStackTrace();
}
}
}
void testGET(String url) throws IOException {
HttpConnection connection = null;
InputStream is = null;
OutputStream os = null;
StringBuffer stringBuffer = new StringBuffer();
try {
connection = (HttpConnection)Connector.open(url);
os = connection.openOutputStream();
is = connection.openDataInputStream();
int ch;
while ((ch = is.read()) != -1) {
stringBuffer.append((char) ch);
}
respostaField.setString(stringBuffer.toString());
} catch (Exception e) {
String x = e.toString();
respostaField.setString(x);
} finally {
if(is!= null) {
is.close();
}
if(os != null) {
os.close();
}
if(connection != null) {
connection.close();
}
}
}
private void mostra(String a) {
Alert alerta = new Alert("Atenção", a, null, AlertType.INFO);
alerta.setTimeout(10000);
display.setCurrent(alerta);
}
public void startApp() { }
public void pauseApp() { }
public void destroyApp(boolean unconditional) { }
}[/code]
Alguém poderia por favor me dar uma luz?