How do we send data via GET method?

Bohemian picture Bohemian · Dec 4, 2009 · Viewed 27.4k times · Source

I am creating a HTTPS connection and setting the request property as GET:

_httpsConnection = (HttpsConnection) Connector.open(URL, Connector.READ_WRITE);
_httpsConnection.setRequestMethod(HttpsConnection.GET);

But how do I send the GET parameters? Do I set the request property like this:

_httpsConnection.setRequestProperty("method", "session.getToken");
_httpsConnection.setRequestProperty("developerKey", "value");
_httpsConnection.setRequestProperty("clientID", "value");

or do I have to write to the output stream of the connection?

or do I need to send the Parameter/Values by appending it to the url?

Answer

Marc Novakowski picture Marc Novakowski · Dec 4, 2009

Calling Connection.setRequestProperty() will set the request header, which probably isn't what you want to do in this case (if you ask me I think calling it setRequestHeader would have been a better choice). Some proxies may strip off or rewrite the name of non-standard headers, so you're better off sticking to the convention of passing data in the GET URL via URL parameters.

The best way to do this on a BlackBerry is to use the URLEncodedPostData class to properly encode your URL parameters:

URLEncodedPostData data = new URLEncodedPostData("UTF-8", false);
data.append("method", "session.getToken");
data.append("developerKey", "value");
data.append("clientID", "value");
url = url + "?" + data.toString();