![]() |
[B]HttpConnection prob[/B] 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 |
Quote:
HTTP connection activity, particularly reading from the InputStream must be done on a separate thread. If you try to do it on the event thread, when the read blocks the whole device freezes as you have noted. |
| All times are GMT -5. The time now is 01:23 AM. |
Powered by vBulletin® Version 3.6.12
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.