Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Revision as of 23:11, 9 November 2013 by lpvalente (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

From Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Series 40

Artigo
Tradução:
Por maiconherverton
Última alteração feita por lpvalente em 09 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 9 November 2013, at 23:11.
240 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×