1

重複の可能性:
Blackberryデバイスでインターネットに接続できませんか?

httpリクエストを送信し、ブラックベリー経由でレスポンスを取得しようとしています。次のコードスニペットを使用しました。

String url="http://www.google.lk/";
HttpConnection con = null;
InputStream is = null;

try {
    con = (HttpConnection) Connector.open(url);
    int responseCode = con.getResponseCode();    // LINE X
    Dialog.alert(String.valueOf(responseCode ));
}
catch(Exception e){
    Dialog.alert(e.getMessage());
}

しかし、コードは決して渡されませんLINE X。エラーはありません。待機するだけで、最終的にタイムアウトになります。何が問題なのですか?

前もって感謝します。

4

1 に答える 1

2

接続タイプについてHttpリクエストに通知する必要があります。

このコードを使用して接続タイプにアクセスするには

    public static String getConnectionString() {

    String connectionString = null;

    // Simulator behaviour is controlled by the USE_MDS_IN_SIMULATOR
    // variable.
    if (DeviceInfo.isSimulator()) {

        connectionString = ";deviceside=true";
    }

    // Wifi is the preferred transmission method
    else if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) {

        connectionString = ";interface=wifi";
    }

    // Is the carrier network the only way to connect?
    else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT) == CoverageInfo.COVERAGE_DIRECT) {

        String carrierUid = getCarrierBIBSUid();

        if (carrierUid == null) {
            // Has carrier coverage, but not BIBS. So use the carrier's TCP
            // network

            connectionString = ";deviceside=true";
        } else {
            // otherwise, use the Uid to construct a valid carrier BIBS
            // request

            connectionString = ";deviceside=false;connectionUID="+carrierUid + ";ConnectionType=mds-public";
        }
    }

    // Check for an MDS connection instead (BlackBerry Enterprise Server)
    else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS) {

        connectionString = ";deviceside=false";
    }

    // If there is no connection available abort to avoid hassling the user
    // unnecssarily.
    else if (CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE) {
        connectionString = "none";

    }

    // In theory, all bases are covered by now so this shouldn't be reachable.But hey, just in case ...
    else {

        connectionString = ";deviceside=true";
    }



    return connectionString;

    }

    /**
     * Looks through the phone's service book for a carrier provided BIBS
     * network
     * 
     * @return The uid used to connect to that network.
     */
     private synchronized static String getCarrierBIBSUid() {
    ServiceRecord[] records = ServiceBook.getSB().getRecords();
    int currentRecord;

    for (currentRecord = 0; currentRecord < records.length; currentRecord++) {
        if (records[currentRecord].getCid().toLowerCase().equals("ippp")) {
            if (records[currentRecord].getName().toLowerCase()
                    .indexOf("bibs") >= 0) {
                return records[currentRecord].getUid();
            }
        }
    }

    return null;
}

使用する

con = (HttpConnection) Connector.open(url + getConnectionString());
于 2012-08-10T18:11:30.857 に答える