Http connection error on the blackberry real devic

2019-03-01 05:23发布

问题:

I am trying to build a simple application for testing purpose in which I am making a simple Http connection .The code is running perfectly on the simulator but when I am testing the app on the real device it is not returning any response code. I think there is some error in http connection .

Here is the code that I am using for http connection:

httpConnection = (HttpConnection)Connector.open("http://www.google.com"); 

The device that I am using is Blackberry 8520 v5.0.0.592

Also give me some tips on how to do the debuging of any app from real device using eclipse plugin.

Thanks in advance.

回答1:

If it is enough that your program works with OS 5.0+, then try using Network API:

ConnectionFactory f = new ConnectionFactory();
ConnectionDescriptor descr = f.getConnection("http://www.google.com");

HttpConnection connection = (HttpConnection) descr.getConnection();

That piece of code tries to use the first available connection type. You can fine tune it if you want.

Regarding debugging, just install BlackBerry Desktop Software, connect your 8520 with the USB cable and from eclipse, click Run -> Debug As... -> BlackBerry Device.



回答2:

The connection factory worked perfectly on the new devices, but didn't work with some of the older ones like the curve and bold. This is what solved it for me:

BrowserField browserField = new BrowserField();
BrowserFieldRequest Req = new BrowserFieldRequest("http://www.yourserver.com/");

InputStream inputStream = browserField.getConnectionManager().makeRequest(Req).openInputStream();


回答3:

Try to redirect the link using following code:

 HttpConnection hc = (HttpConnection) Connector.open(url1);

 hc.setRequestMethod(HttpConnection.GET);
 hc.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");
 InputStream is = null;
 String location =hc.getHeaderField("Location");

 HttpConnection hcc = (HttpConnection) Connector.open(location);
 is = hcc.openDataInputStream();


回答4:

Try to add transport to address For example for connect via wi-fi :

httpConnection = (HttpConnection)Connector.open("http://www.google.com;interface=wifi");