Как правильно построить суффикс HTTP-соединения - PullRequest
1 голос
/ 14 февраля 2011

Я написал код для получения названия местоположения с помощью обратного геокодирования Карт Google, например: http://maps.google.com/maps/geo?json&ll=9.6,73.7

Как добавить соответствующий суффикс HTTP-соединения к указанному выше URL?

Я попробовал следующую функцию:

private static String getConnectionStringForGoogleMap(){
    String connectionString="";
    if(WLANInfo.getWLANState()==WLANInfo.WLAN_STATE_CONNECTED){
        connectionString="&interface=wifi";
    }   
     else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS){
         connectionString = "&deviceside=false";
    }
        else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT)==CoverageInfo.COVERAGE_DIRECT){
            String carrierUid=getCarrierBIBSUid();
            if(carrierUid == null) {
                connectionString = "&deviceside=true";
            }
            else{
                 connectionString = "&deviceside=false&connectionUID="+carrierUid + "&ConnectionType=mds-public";
                }

            }
     else if(CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE)
        {

        }
    return connectionString;
    }

Когда я запускаю приложение в симуляторе, я создаю URL следующим образом: http://maps.google.com/maps/geo?json&ll=9.6,73.7+getConnectionStringForGoogleMap();

Но я получаю исключение туннеля и не уверен, что делать дальше.

Этот URL также приводит к исключению: http://maps.google.com/maps/geo?json&ll=9.6,73.7&deviceside=false&ConnectionType=mds-public

Как и: http://maps.google.com/maps/geo?json&ll=9.6,73.7;deviceside=false;ConnectionType=mds-public

Я не совсем понимаю, что нужно сделать, чтобы заставить это работать.

Ответы [ 5 ]

3 голосов
/ 14 февраля 2011

Вам определенно нужны точки с запятой (;), а не амперсанды (&).Вы пытаетесь запустить это на симуляторе?Если да, у вас работает симулятор MDS?Это необходимо для использования devicside=false на симуляторе.

2 голосов
/ 12 января 2012

Попробуйте использовать следующее У меня это сработало

http://maps.google.com/maps/geo?json&ll=9.6,73.7&;deviceside=false;ConnectionType=mds-public

2 голосов
/ 14 февраля 2011

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.

2 голосов
/ 14 февраля 2011

Попробуйте использовать класс сетевого помощника Versatile Monkey , чтобы найти лучший путь для HTTP-соединения и избежать этих туннельных исключений. И сформируйте URL с правильным синтаксисом.

1 голос
/ 12 января 2012

Если вы ориентируетесь на OS5 и выше, вы можете использовать ConnectionFactory . Это займет много тяжелой работы по установлению правильного типа соединения.

...