黑莓HTTP连接问题

时间:2011-07-28 14:53:59

标签: java blackberry

我有一个简单的应用程序写入连接到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());

4 个答案:

答案 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)