aspose file tools*
The moose likes Java Micro Edition and the fly likes Cell Phone Authentication with HTTP protocol Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Mobile » Java Micro Edition
Bookmark "Cell Phone Authentication with HTTP protocol" Watch "Cell Phone Authentication with HTTP protocol" New topic
Author

Cell Phone Authentication with HTTP protocol

Eric Boromisa
Greenhorn

Joined: Feb 14, 2004
Posts: 1
I've been trying to create a cell phone interface for a smart sensor network but it requires authentication to a servlet online and submits queries to a remote server that manages the sensors (both the authentication and queries are to the same URL) For some reason my code doesnt want to contact that URL and I can't seem to figure out why. I've been using CORE J2ME by John Muchow and used primarily the code from chapter 14 (pg 534). The program uses POST to submit username and password strings. The servlet should return true if valid. Then the midlet submits the username and the type of data it wants (amount of light in room, temperature etc) which the selvet returns in string (The temperature is ___) I didn't write the servlet and having a problem interpreting some of the statements, but I understand the bulk of it. I did write the midlet though and it does compile. Here are the functions that dont want to work (the prog crashes when it comes to them)
Here are the functions that are giving me trouble.
private void login() throws IOException
{
HttpConnection http = null;
OutputStream oStrm = null;
InputStream iStrm = null;
boolean ret=false;

String url = "192.168.100.101:8080";
System.err.println("Login parameters set");
try
{
System.err.println("Login");
http = (HttpConnection) Connector.open(url);
oStrm = http.openOutputStream();

http.setRequestMethod(HttpConnection.POST);
http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
byte data[] = ("account=" + tfAccount.getString()).getBytes();
oStrm.write(data);
data = ("&password=" + tfPassword.getString()).getBytes();
oStrm.write(data);

oStrm.flush();
iStrm = http.openInputStream();
ret = processlogin(http, iStrm);
if(ret)
display.setCurrent(lsMain);

else
display.setCurrent(lsRetry);
}
finally
{
// Clean up
if (iStrm != null)
iStrm.close();
if (oStrm != null)
oStrm.close();
if (http != null)
http.close();
}

}
private boolean processlogin(HttpConnection http, InputStream iStrm) throws IOException
{
if (http.getResponseCode() == HttpConnection.HTTP_OK)
{
return true;
}
return false;
}

I'm just wondering if there is any special library or statement I'm missing. I've even tried running all of this locally on the server to no avail. Could somebody let me know if there are some common errors regarding accessing HTTP i might be missing? Thank you in advance I really appreciate it.
Michael Yuan
author
Ranch Hand

Joined: Mar 07, 2002
Posts: 1427
If I were to do this, I would use "GET" instead of "POST" and append the "?account=XXX&password=XXX" string directly at the end of the request URL.


Seam Framework: http://www.amazon.com/exec/obidos/ASIN/0137129394/mobileenterpr-20/
Ringful: http://www.ringful.com/
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Cell Phone Authentication with HTTP protocol