1. We have to take all the keys and values in One Hash table or Array of Hash tables(Vector)
2. Convert it into JSON object.
3. Send to server.
packagecom.alishaik.thread;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.Hashtable;
importjavax.microedition.io.Connector;
importjavax.microedition.io.HttpConnection;
importnet.rim.blackberry.api.browser.URLEncodedPostData;
importnet.rim.device.api.io.http.HttpProtocolConstants;
importnet.rim.device.api.ui.Screen;
importnet.rim.device.api.ui.UiApplication;
importcom.hiddenbrains.ddft.common.CommonMethods;
importcom.hiddenbrains.ddft.common.MessageScreen;
importcom.hiddenbrains.ddft.common.Utility;
importcom.hiddenbrains.ddft.json.JSONObject;
public class PostDataThread extendsThread
{
privateHttpConnection httpConnection;
privateInputStream inputStream;
privateStringBuffer stringBuffer=newStringBuffer();
privateHashtable hashTable;
privateString URL="";
privateintindex=0;
public PostDataThread(String url, Hashtable hash,intindex)
{
// System.out.println("=========WEB SERVICE===========: "+url);
URL=Utility.escapeHTML(url)+CommonMethods.updateConnectionSuffix();//interface=wifi; or deviceside=false;
this.index=index;
this.hashTable=hash;//Here I am taking one Hashtable. You can manage according to your requirement.
}
publicvoidrun()
{
try
{
httpConnection=(HttpConnection)Connector.open(URL);
httpConnection.setRequestMethod(HttpConnection.POST);
URLEncodedPostData oPostData =newURLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false);
oPostData.setData(provideJSONObject());//IMPORTANT
byte[] postBytes = oPostData.getBytes();
httpConnection.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_TYPE,"application / requestJson");
httpConnection.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_LENGTH, Integer.toString(postBytes.length));
OutputStream strmOut = httpConnection.openOutputStream();
strmOut.write(postBytes);
strmOut.flush();
strmOut.close();
intresponse=httpConnection.getResponseCode();
if(response==HttpConnection.HTTP_OK)
{
inputStream = httpConnection.openInputStream();
intc;
while((c=inputStream.read())!=-1)
{
stringBuffer.append((char)c);
}
parseData(stringBuffer.toString());
}
else
parserInterface.didFailParser("Connection failure HTTP Response: "+response);
}
catch(finalException e)
{
String msg=e.getMessage();
if(msg==null)
msg="No Data Found";
//Show failure alert here
}
finally
{
try
{
if(httpConnection!=null)
httpConnection.close();
if(inputStream!=null)
inputStream.close();
}
catch(Exception e2)
{}
}
}
private String provideJSONObject()
{
try
{
JSONObject jsonObj=newJSONObject();
jsonObj.put("data", hashTable);//Getting correct data; You can check here
// System.out.println("======================JSON STRING FOR POSTING: "+jsonObj.toString());
returnjsonObj.toString();
}
catch(Exception e)
{
returnnull;
}
}
private void parseData(String responseString)
{
responseString="["+responseString+"]";
System.out.println("======================\n\n"+responseString+"\n\n===================");
//Do what you want.
}
}