POST UTF-8 encoded data to the server in J2ME
By Ash Viewed: 31759 times Emailed: 181 times Printed: 224 times
This sample code shows how to POST UTF-8 encoded data to the server in J2ME. The first requirement is to set the content-type for the connection. You should also use a OutputStreamWriter and pass "UTF-8" as the second parameter. Also note that the first parameter passed to this function 'data' should be encoded to UTF-8 bytes.
private void sendData(StringBuffer data,String serverUrl) throws IOException
{
HttpConnection connection = (HttpConnection) Connector.open(serverUrl,Connector.READ_WRITE);
connection.setRequestMethod(HttpConnection.POST);
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length",String.valueOf(data.toString().getBytes("UTF-8").length));
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.1");
connection.setRequestProperty("Accept-Charset","UTF-8;q=0.7,*;q=0.7");
connection.setRequestProperty("Accept-Encoding","gzip, deflate");
connection.setRequestProperty("Accept","text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
InputStream inputStream = null;
OutputStreamWriter out = null;
byte[] readData = new byte[HTTP_INPUT_BUFFER_SIZE];
String response;
try
{
// --- write ---
out = new OutputStreamWriter(connection.openOutputStream(),"UTF-8");
out.write(data.toString());
out.close();
// --- read ---
int responseCode = connection.getResponseCode();
if (responseCode != HttpConnection.HTTP_OK)
{
throw new IOException("HTTP response code: " + responseCode);
}
inputStream = connection.openInputStream();
int actual = inputStream.read(readData);
if (actual==0)
{
throw new IOException("No response from server");
}
response = new String(readData,0,actual,"UTF-8");
if (!response.equalsIgnoreCase(SUCCESS_MESSAGE))
{
throw new IOException(response);
}
}
finally
{
if (out!=null)
{
try
{
out.close();
} catch (IOException ex) {}
}
if (inputStream!=null)
{
try
{
inputStream.close();
} catch (IOException ex) {}
}
}
}
Comments(1)
| 1. | Great Sample, it helped me alot |
Latest Tutorials
More Latest News
Most Viewed Articles (in last 30 days)

