0

我已经正确设置了 Asterisk 服务器以允许 GUI 界面,为了检查这一点,我已经尝试并测试了一个已经可用的 Android 应用程序并用我的浏览器进行了测试。我能够登录并查看文件。例如。 http://192.168.8.x:8088/asterisk/rawman?action=getconfig&filename=users.conf

此命令向我显示 user.conf 文件。

但是,相同的命令不适用于我的 Android 应用程序。结果是

响应:错误消息:权限被拒绝

我的代码:第一个按钮点击:try{ new mygoogleSearch().execute( http://192.168.8.x:8088/asterisk/rawman?action=login&username=tismo&secret=tismo123 ); } catch(Exception e) { Log.v("Exception google search","Exception:"+e.getMessage()); }

这将返回:03-27 17:27:09.468:E/GoogleSearch(21686):响应:SuccessMessage:身份验证已接受

在第二个按钮上单击:

try{
            new Execute().execute("http://192.168.8.4:8088/asterisk/rawman?action=getconfig&filename=test.conf");
} catch(Exception e) {
Log.v("Exception google search","Exception:"+e.getMessage());
}

类 mygoogleSearch 扩展 AsyncTask {

protected String doInBackground(String... searchKey) {
    ;
    String cmd = searchKey[0];
    try {
        return  action(cmd);

    } catch(Exception e) {
        Log.v("Exception ",
                "Exception:"+e.getMessage());
        return "";
    }
}

私有字符串操作(字符串 uRL)抛出 MalformedURLException,IOException { String newFeed= uRL; StringBuilder 响应 = new StringBuilder();

    URL url = new URL(newFeed);
    HttpURLConnection httpconn  = (HttpURLConnection) url.openConnection();
    httpconn.setUseCaches(false);
    //httpconn.setRequestProperty("Cache", "false");
    if(httpconn.getResponseCode()==HttpURLConnection.HTTP_OK) {
        BufferedReader input = new BufferedReader(
                new InputStreamReader(httpconn.getInputStream()),
                8192);
        String strLine = null;
        while ((strLine = input.readLine()) != null) {
            response.append(strLine);
        }
        input.close();
    }
    return response.toString();

}

这返回:

03-27 17:28:31.808:E/GoogleSearch(21800):响应:错误消息:权限被拒绝

4

1 回答 1

0

您需要一个 CookieManager 来连接到同一个会话。

引用来自 asteriskbook “权威指南”
“LOGIN 命令验证管理器界面的 HTML 视图的凭据。一旦您登录,Asterisk 会在您的浏览器上存储一个 cookie(对 httptimeout 设置的长度有效)。使用此 cookie连接到同一个会话。”

更新:模仿浏览器的 CookieManager 存储示例:
如何将 Cookie 与 HttpUrlConnection 一起使用使用 HttpUrlConnection 持久化 Cookie

于 2013-03-27T11:08:37.670 回答