0

GUIインターフェイスを許可するようにAsteriskServerを適切に設定しました。これを確認するために、すでに利用可能な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:認証が受け入れられました

2番目のボタンをクリックします。

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

private String action(String uRL)throws MalformedURLException、IOException {String newFeed = uRL; StringBuilder応答=newStringBuilder();

    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):応答:ErrorMessage:アクセスが拒否されました

4

1 に答える 1

0

同じセッションに接続するには、CookieManagerが必要です。

アスタリスクブックからの引用「決定的なガイド」
「LOGINコマンドは、ManagerインターフェイスのHTMLビューの資格情報を認証します。ログインすると、AsteriskはブラウザにCookieを保存します(httptimeout設定の長さに対して有効です)。このCookieが使用されます。同じセッションに接続します。」

更新:ブラウザを模倣するCookieManagerストレージの例:HttpUrlConnectionで
Cookieを使用する方法、HttpUrlConnectionを使用してCookieを永続化する方法

于 2013-03-27T11:08:37.670 に答える