1

我通过以下方式使用 HTTP 连接:

         HttpConnection _httpConnection = null;

         try {
             _httpConnection = (HttpConnection)Connector.open(_url);
         } catch(Exception e) { }

        byte [] postDataBytes = _postData.getBytes();
        _httpConnection.setRequestMethod(HttpConnection.POST);
        _httpConnection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
        _httpConnection.setRequestProperty("Content-Language", "en-US");
        _httpConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        _httpConnection.setRequestProperty("Connection", "close");
        _httpConnection.setRequestProperty("Content-Length", Integer.toString(_postData.getBytes().length));

        os = _httpConnection.openOutputStream();
        os.write(postDataBytes);
        os.flush();

此 HTTP 连接需要参数才能成功打开。例如,在 WIFI 网络上,它需要将“;deviceside=true;interface=wifi”添加到 URL。

问题出在 EDGE 连接上。每个国家都需要添加不同的参数。例如在黎巴嫩,它需要“;deviceside=false”,但在 KSA 中,如果我添加此参数,则连接将无法打开。在美国,它需要不同类型的参数。问题是如何为所有具有相同参数的国家/地区建立 HTTP 连接。这样无论下载到哪里,应用程序都能成功连接到互联网。

4

3 回答 3

4

欢迎来到 BlackBerry 上令人困惑的网络传输世界!您将需要从连接您的 BlackBerry-http 和套接字连接到世界的文章开始。

这是一个“给我一个连接”的简单示例(注意,您需要添加适当的错误处理;另外,myURL在下面的代码中应该没有附加连接描述符信息):

ConnectionFactory factory = new ConnectionFactory();
ConnectionDescriptor descriptor = factory.getConnection(myURL);
if (descriptor != null) {
    _httpConnection = (HttpConnection) descriptor.getConnection();
    ...
}
于 2011-09-19T12:52:55.090 回答
0

要使用 connectionFactory,您似乎需要设置BisBOptions

尝试这个:

    connFact = new ConnectionFactory();
    connFact.setTransportTypeOptions(TransportInfo.TRANSPORT_BIS_B,
                    new BisBOptions("mds-public"));
于 2012-07-04T15:15:07.767 回答
0

尝试使用此链接melick-rajee.blogspot.com中引用的方法并像使用它一样

_url = "http://www.example.com";

_httpConnection = (HttpConnection)Connector.open(_url + getConnectionString());

您必须签署应用程序才能使用它,否则应用程序将显示异常。要签署您的应用程序,只需转到此处代码签名密钥

于 2011-09-19T12:50:58.257 回答