×
Namespaces

Variants
Actions

Como usar a solicitação HTTP POST em Java ME

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Series 40

Artigo
Tradução:
Por maiconherverton
Última alteração feita por lpvalente em 10 Nov 2013


Este artigo demonstra como criar uma conexão HTTP em e usá-la para enviar uma solicitação POST para o servidor web.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
 
 
public class HttpPOST extends MIDlet implements CommandListener {
 
/** O valor padrão para a seqüência de URL é usuário poder alterá-lo para alguma outra url dentro da aplicação* */
private static String defaultURL = "http://localhost";
 
// GUI componente para o usuário insirerir a url web
private Display myDisplay = null;
private Form mainScreen;
private TextField requestField;
 
// GUI componente para exibir informações de cabeçalho
private Form resultScreen;
private StringItem resultField;
 
// o botão "enviar" usado em mainScreen
Command sendCommand = new Command("enviar", Command.OK, 1);
// o botão "voltar" usado em resultScreen
Command backCommand = new Command("voltar", Command.OK, 1);
 
public HttpPOST()
{
// inicializar os componentes de GUI para entrar na url web
myDisplay = Display.getDisplay(this);
mainScreen = new Form("Type in a URL:");
requestField = new TextField(null, defaultURL, 100, TextField.URL);
mainScreen.append(requestField);
mainScreen.addCommand(sendCommand);
mainScreen.setCommandListener(this);
}
 
public void startApp() {myDisplay.setCurrent(mainScreen);}
 
public void pauseApp() {}
 
public void destroyApp(boolean unconditional) {}
 
public void commandAction(Command c, Displayable s)
{
// quando o usuário clica no botão "enviar" no mainScreen
if (c == sendCommand)
{
//recuperar a URL da Web queo usuário forneceu
urlstring = requestField.getString();
 
// enviar um pedido POST para o servidor web
resultstring = sendPostRequest(urlstring);
 
// exibindo o conteúdo da página Obtido em servidor web
resultScreen = new Form("POST Result:");
resultField = new StringItem(null, resultstring);
resultScreen.append(resultField);
resultScreen.addCommand(backCommand);
resultScreen.setCommandListener(this);
myDisplay.setCurrent(resultScreen);
 
}
else if (c == backCommand)
{
//fazer tudo novamente
requestField.setString(defaultURL);
myDisplay.setCurrent(mainScreen);
}
}
 
// enviar uma solicitação POST para servidor web
public String sendPostRequest(String urlstring)
{
HttpConnection hc = null;
DataInputStream dis = null;
DataOutputStream dos = null;
 
String message = "";
 
// especificando a sequência de consulta
String requeststring = "request=gettimestamp";
try
{
// abre a conexão http com o servidor web
// tanto para ler e escrever o acesso
hc = (HttpConnection) Connector.open(urlstring, Connector.READ_WRITE);
 
// Configur ao método de solicitação POST
hc.setRequestMethod(HttpConnection.POST);
 
// Obtenção do fluxo de saída para o envio da String de consulta
dos = hc.openDataOutputStream();
byte[] request_body = requeststring.getBytes();
 
// envio da String de consulta para um servidor web
for (int i = 0; i < request_body.length; i++)
{
dos.writeByte(request_body[i]);
}
// flush outdos.flush();
 
// obtenção do fluxo de entrada para a recepção de resposta HTTP
dis = new DataInputStream(hc.openInputStream());
 
// a leitura da resposta de caráter do servidor web pelo caráter
int ch;
while ((ch = dis.read()) != -1)
{
message = message + (char) ch;
}
 
}
catch (IOException ioe)
{
message = "ERROR";
}
finally
{
// libera a entrada e saida e a conexão http
try
{
if (hc != null)
hc.close();
}
catch (IOException ignored)
{
}
try
{
if (dis != null)
dis.close();
}
catch (IOException ignored)
{
}
try
{
if (dos != null)
dos.close();
}
catch (IOException ignored)
{
}
}
return message;
}
}
This page was last modified on 10 November 2013, at 02:11.
154 page views in the last 30 days.