Hei!
Matkapuhelimeni mittaa eräitä tietoja tavu-taulukkoon (byte array). Tämä taulukko tulee välittää servletille, jossa tavutaulukko luetaan vastaavaan muotoon ja käsitellään edelleen.
Matkapuhelimeni osaa nyt lähettää tavutaulukon käyttäen httpconnection -rajapintaa apunaan:
HttpConnection conn = null;
DataInputStream din = null;
DataOutputStream dout = null;
conn = (HttpConnection) Connector.open(urlstring);
conn.setRequestMethod(HttpConnection.POST);
dout = conn.openDataOutputStream ();
dout.writeInt (data.length);
dout.write (data, 0, data.length);
dout.flush ();
dout.close ();
Esimerkissä data -sisältää tavutaulukon, jossa välitettävä tieto on. dout.writeInt() -lähettää servletille tiedon datan pituudesta ja dout.write() lähettää tavutaulukon kokonaisuudessaan servletille.
Mutta ongelmana on, kuinka lukea servletissä tuo lähetetty tieto? En ole saanut onnistumaan, vaikka mitä olen yrittänyt. Tässä eräs esimerkki:
InputStream in = request.getInputStream();
OutputStream out = response.getOutputStream();
DataInputStream din = new DataInputStream(in);
DataOutputStream dout = new DataOutputStream(out);
byte[] data = receiveObject (din);
private byte [] receiveObject (DataInputStream din)
throws IOException {
int length = din.readInt();
byte [] buf = new byte [length];
din.readFully (buf);
return buf;
}
Matkapuhelimeni mittaa eräitä tietoja tavu-taulukkoon (byte array). Tämä taulukko tulee välittää servletille, jossa tavutaulukko luetaan vastaavaan muotoon ja käsitellään edelleen.
Matkapuhelimeni osaa nyt lähettää tavutaulukon käyttäen httpconnection -rajapintaa apunaan:
HttpConnection conn = null;
DataInputStream din = null;
DataOutputStream dout = null;
conn = (HttpConnection) Connector.open(urlstring);
conn.setRequestMethod(HttpConnection.POST);
dout = conn.openDataOutputStream ();
dout.writeInt (data.length);
dout.write (data, 0, data.length);
dout.flush ();
dout.close ();
Esimerkissä data -sisältää tavutaulukon, jossa välitettävä tieto on. dout.writeInt() -lähettää servletille tiedon datan pituudesta ja dout.write() lähettää tavutaulukon kokonaisuudessaan servletille.
Mutta ongelmana on, kuinka lukea servletissä tuo lähetetty tieto? En ole saanut onnistumaan, vaikka mitä olen yrittänyt. Tässä eräs esimerkki:
InputStream in = request.getInputStream();
OutputStream out = response.getOutputStream();
DataInputStream din = new DataInputStream(in);
DataOutputStream dout = new DataOutputStream(out);
byte[] data = receiveObject (din);
private byte [] receiveObject (DataInputStream din)
throws IOException {
int length = din.readInt();
byte [] buf = new byte [length];
din.readFully (buf);
return buf;
}
Vastaukset 1
Vanhimmat
Unohdin doPost -metodissa alkuun doGet -metodin kutsun, joten ei ihmekään kun ei toiminut ;). Koodi itse toimii hyvin.