View Single Post
Old 08-28-2009, 03:38 AM   #1 (permalink)
Durgm
Knows Where the Search Button Is
 
Join Date: Aug 2009
Model: 9000
PIN: N/A
Carrier: T-System
Posts: 23
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default [B]HttpConnection prob[/B]

Please Login to Remove!

Hi Myself Durg

I am newbie in BlackBerry development. I want to connect my application from internet. My code is

HttpConnection code:

import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
//import javax.microedition.io.*;
import java.io.OutputStream;
//import java.util.*;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;

public class HttpCommunicationHandler
{
HttpCommunicationHandler()
{

}

/**
* This method retrieves the data from the server using HTTP POST.
*/


public String getDataFromServerThroughPost(String getUrl, String urlData)
{
HttpConnection httpConn = null;
InputStream is = null;
OutputStream out = null;
String httpUrl = getUrl;
String paramsToBeSend = urlData;
String dataRead = "";

try {
httpConn = (HttpConnection) Connector.open(httpUrl);
httpConn.setRequestMethod(HttpConnection.POST);
httpConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
httpConn.setRequestProperty("Content-Length", Integer.toString(paramsToBeSend.length()));
out = httpConn.openOutputStream();
out.write(paramsToBeSend.getBytes());
if (out != null)
out.close();
if ((httpConn.getResponseCode() == HttpConnection.HTTP_OK))
{
int length = (int) httpConn.getLength();
is = httpConn.openInputStream();
if (length == -1)
{
int chunkSize = 1024;
byte[] data = new byte[chunkSize];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int dataSizeRead = 0;// size of data read from input stream.
// keeps track of total size of data read upto now.
int totalDataSizeRead = 0;
while ((dataSizeRead = is.read(data)) != -1)
{

baos.write(data, 0, dataSizeRead);
}
dataRead = new String(baos.toByteArray());
baos.close();
}

else {
byte[] data = new byte[length];
// try to read all the bytes returned from the server.
is.read(data);
// dis.readFully(data);
dataRead = new String(data);
//if (data != null)
//data = null;

}

}
else {
// UIController.showErrorAlert("Network Error",
// "Error in communicating with the server.", d);
//System.out.println("Network Error","Error in communicating with the server.");

}
}
catch (IOException e)
{
String str ="hello";

//System.out.println("Network Error","Error in communicating with the server.", "OK", null);

}

// Since only limited number of network objects can be in open state
// it is necessary to clean them up as soon as we are done with them.
// Networking done. Clean up the network objects
finally {
try
{
if (is != null)
is.close();

}
catch (IOException e)
{

}
try
{
if (httpConn != null)
httpConn.close();
}
catch (IOException e)
{
//System.out.println("Exception occured " + t.toString());
}
}
return dataRead;
}
}


and I use this class in to my loginclass. I am sending the login and password and match after that want to print the success message.


LoginScreen code: want to generate action on click login button

try{
String datafrom = "";
HttpCommunicationHandler http = new HttpCommunicationHandler();
String getUrl =" my url";
String urlData ="?requestStr=<UserInfo><UserID>ravi</UserID><Password>kant</Password><LoginDate></LoginDate><IPAddress></IPAddress></UserInfo>";
datafrom = http.getDataFromServerThroughPost(getUrl,urlData);
System.out.println("value of datafrom"+datafrom);
}
catch(Throwable t){

}
When I click on the login button my app freeze.Please help me . its very urgent. Is there any permisson to set for network connection?

Thanks
Durg
Offline   Reply With Quote