Параметры HTTP-соединения - PullRequest
       56

Параметры HTTP-соединения

1 голос
/ 19 сентября 2011

Я использую 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 к URL-адресу требуется добавить «; deviceside = true; interface = wifi».

Проблема в соединении EDGE. Каждая страна требует добавления различных параметров. Например, в Ливане это требует "; deviceside = false", но в KSA, если я добавлю этот параметр, соединение не откроется. В США нужны разные типы параметров. Вопрос в том, как установить HTTP-соединение для всех стран с одинаковыми параметрами. Чтобы приложение успешно подключалось к Интернету независимо от того, где оно загружено.

Кто-нибудь может помочь с этой проблемой? Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 19 сентября 2011

Добро пожаловать в запутанный мир сетевых транспортов на BlackBerry! Вы захотите начать со статьи Подключение вашего BlackBerry - http и сокеты к миру .

Вот простой пример «просто дайте мне соединение» (обратите внимание, вам нужно будет добавить соответствующую обработку ошибок; кроме того, myURL в приведенном ниже коде не должно иметь никакой информации о дескрипторе соединения, добавленной к нему):

ConnectionFactory factory = new ConnectionFactory();
ConnectionDescriptor descriptor = factory.getConnection(myURL);
if (descriptor != null) {
    _httpConnection = (HttpConnection) descriptor.getConnection();
    ...
}
0 голосов
/ 04 июля 2012

Чтобы использовать connectionFactory, кажется, вам нужно установить BisBOptions .

Попробуйте:

    connFact = new ConnectionFactory();
    connFact.setTransportTypeOptions(TransportInfo.TRANSPORT_BIS_B,
                    new BisBOptions("mds-public"));
0 голосов
/ 19 сентября 2011

Попробуйте использовать метод, указанный в этой ссылке melick-rajee.blogspot.com и используйте его как

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

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

Вы должны будете подписать приложение, чтобы использовать это, иначе приложение покажет исключение. Чтобы подписать заявку, просто зайдите сюда Ключи для подписи кода

...