【问题标题】:Getting web response when button clicked in BlackBerry在 BlackBerry 中单击按钮时获取 Web 响应
【发布时间】:2012-11-21 12:21:51
【问题描述】:

我已经在 BB 中加载了一个网页,如下所示

//RegBrowserFieldConfig extends BrowserFieldConfig
RegBrowserFieldConfig regBrowserFieldConfig = new RegBrowserFieldConfig();

//RegBrowserFieldListener extends BrowserFieldListener
RegBrowserFieldListener regBrowserFieldListener = new RegBrowserFieldListener();

BrowserField registrationBrowserField = new BrowserField(regBrowserFieldConfig);
registrationBrowserField.addListener(regBrowserFieldListener);
add(registrationBrowserField);

registrationBrowserField.requestContent("http://myurl.com/");

该网页加载正常。该网页中有一个 提交 按钮,该按钮在 HTML 的表单元素中调用 onsubmit。那就是调用一个 JavaScript 函数。在该函数中,还有一些其他 URL 将根据要求触发。

我需要的是获得这些 URL 调用的响应。我该怎么做?

【问题讨论】:

  • 你想得到那个网址吗?
  • 不,我想得到回复。就像我们在 Android 中使用 HttpResponse

标签: javascript blackberry browserfield


【解决方案1】:

我试过这种方式..

BrowserFieldListener list = new BrowserFieldListener() {

        public void documentLoaded(BrowserField browserField,
                Document document) throws Exception {               
            String url = document.getBaseURI(); //u can get the current url here... u can use ur logic to get the url after clicking the submit button  

                Serverconnection(url);//from this methode u can get the response
        }
    };

    browserField.addListener(list);

服务器连接..

public String Serverconnection(String url) {

    String line = "";

    // if (DeviceInfo.isSimulator()) {
    // url = url + ";deviceSide=true";
    // } else {
    // url = url + ";deviceSide=true";
    // }
    url = url + getConnectionString();
    try {
        HttpConnection s = (HttpConnection) Connector.open(url);
        s.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded");
        s.setRequestProperty(
                "Accept",
                "text/html,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
        s.setRequestProperty(HttpProtocolConstants.HEADER_ACCEPT_CHARSET,
                "UTF-8");
        s.setRequestMethod(HttpConnection.GET);
        InputStream input = s.openInputStream();
        byte[] data = new byte[10240];
        int len = 0;
        StringBuffer raw = new StringBuffer();

        while (-1 != (len = input.read(data))) {
            raw.append(new String(data, 0, len));
        }

        line = raw.toString();

        input.close();
        s.close();
    } catch (Exception e) {
        System.out.println("response--- excep" + line + e.getMessage());
    }
    return line;

}

编辑..

private static String getConnectionString() {
    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;
}

private 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;
}

【讨论】:

  • 我认为这会奏效。让我试着接受你的回答。非常感谢:-)
  • getConnectionString() 内部使用的 Serverconnection 方法是什么?
猜你喜欢
  • 2018-02-16
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多