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

このリンクmelick-rajee.blogspot.comで参照されている方法を使用して、次のように使用してみてください。

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

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

これを使用するには、アプリケーションに署名する必要があります。署名しないと、アプリケーションに例外が表示されます。アプリケーションに署名するには、ここにアクセスしてくださいコード署名キー

于 2011-09-19T12:50:58.257 に答える
0

connectionFactoryを使用するには、 BisBOptionsを設定する必要があるようです。

これを試して:

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