Http POST in BlackBerry

What type of a POST do you use? If you are just passing key-value pairs, then it should be a POST of a “application/x-www-form-urlencoded” content-type.

So, what lacks youe code is:

1). Set a proper content-type on your connection:

httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

2). Prepare the content to be sent to the server via the POST:

URLEncodedPostData encPostData = new URLEncodedPostData("UTF-8", false);
encPostData.append("username", username);
encPostData.append("password", password);
encPostData.append("age", age);
byte[] postData = encPostData.toString().getBytes("UTF-8");

3). Set content-length for the connection (this step may be optional – try without this first, probably the BB OS is smart enough to set this automatically):

httpConn.setRequestProperty("Content-Length", String.valueOf(postData.length));

4). Open an OutputStream and write the content to it (the code is simplified):

OutputStream os = httpConn.openOutputStream();
os.write(postData);
os.flush();

Leave a Comment