黑莓HTTP连接问题

我有一个简单的应用程序编写连接到Web服务(restful)。 该应用程序在黑莓模拟器上工作正常但是我在黑莓9300上使用它时遇到了问题。

当应用程序尝试调用Web服务时,我不断收到错误“java.io.ioexception:tunnel down”。

我正在调用的服务是一个简单的HTTPpost,我试图通过WIFI运行它(WIFI连接正常用于浏览互联网)。

我正在使用连接字符串“http://127.0.0.1:8080/test/restws;interface=wifi”,IP地址已更改为我正在呼叫的服务器的实际IP地址。 我可以在我的笔记本电脑浏览器上调用此服务器上的restful web服务。

我使用的代码类似于下面的&在模拟器上工作正常。 在模拟器和手机上的代码之间唯一改变的是连接字符串(使用“interface = wifi”与“deviceside = true”相反)

这是代码问题还是我需要在手机上更改的设置? 关于我需要做些什么才能克服这一点的想法。

谢谢

StreamConnection s = (StreamConnection) Connector .open(connectionString); httpConn = (HttpConnection) s; httpConn.setRequestMethod("POST"); httpConn.setRequestProperty("Content-Length", Integer.toString(postData.length())); OutputStream output = httpConn.openOutputStream(); output.write(postData.getBytes()); output.flush(); output.close(); String response = httpConn.getResponseMessage(); int statusCode = httpConn.getResponseCode(); if (statusCode != HttpConnection.HTTP_OK) { } InputStream is = httpConn.openInputStream(); int ret = 0; while ((ret = is.read(buf)) > 0) { os.write(buf, 0, ret); } result = new String(os.toByteArray()); 

我在这里遇到了问题。获得HttpConnection之后我猜的一切都是一样的。 尝试这个:

 ConnectionFactory cf = new ConnectionFactory(); ConnectionDescriptor cd = cf.getConnection("YourUrl"); httpConnector = (HttpConnection) cd.getConnection(); httpConnector.setRequestMethod(HttpConnection.POST); 

嘿,我不知道它是否能解决你的问题,但尝试使用interface = wifi,deviceside = true以及“ConnectionType = mds-public”这个标签。 希望它有效。欢呼

BlackBerry上的网络连接很复杂且很难。 关于它如何运作的事实上的指南是由Peter Strange撰写的论坛文章“ 连接你的BlackBerry – http和socket连接到世界 ”。

此外,至少部分描述了“ 连接问题 ”中的“隧道向下”错误。 您可以尝试搜索BlackBerry支持论坛以获取更多信息。

阅读链接: http : //www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800563/What_Is_-_Different_ways_to_make_an_HTTP_or_socket_connection.html?nodeid= 826935& vernum=0