我有一个简单的应用程序写入连接到Web服务(restful)。该应用程序在黑莓模拟器上工作正常但是我在黑莓9300上使用它时遇到了问题。
当应用程序尝试调用Web服务时,我不断收到错误“java.io.ioexception:tunnel down”。
我正在调用的服务是一个简单的HTTP帖子,我试图通过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());
答案 0 :(得分:1)
我在here遇到了问题。获得HttpConnection之后我猜的一切都是一样的。试试这个:
ConnectionFactory cf = new ConnectionFactory();
ConnectionDescriptor cd = cf.getConnection("YourUrl");
httpConnector = (HttpConnection) cd.getConnection();
httpConnector.setRequestMethod(HttpConnection.POST);
答案 1 :(得分:0)
嘿,我不知道它是否可以解决你的问题,但是尝试使用interface = wifi,deviceside = true以及“ConnectionType = mds-public”这个标签。希望它有效。欢呼
答案 2 :(得分:0)
BlackBerry上的网络连接很复杂且很难。关于它如何运作的事实指南是Peter Strange的论坛帖子“Connecting your BlackBerry - http and socket connections to the world”。
此外,帖子“Connection Problems”中至少部分描述了“隧道传输”错误。您可以尝试搜索BlackBerry support forums以获取更多信息。
答案 3 :(得分:0)