0

GAE 远程 API for java:在 App Engine 客户端上配置远程 API

RemoteApiInsideAppEngineExample(String username, String password)
        throws IOException {
        // Authenticating with username and password is slow, so we'll do it
        // once during construction and then store the credentials for reuse.
        this.options = new RemoteApiOptions()
            .server("your_target_app_id.appspot.com", 443)
            .credentials(username, password);
        RemoteApiInstaller installer = new RemoteApiInstaller();
        installer.install(options);
        try {
            // Update the options with reusable credentials so we can skip
            // authentication on subsequent calls.
            options.reuseCredentials(username, installer.serializeCredentials());
        } finally {
            installer.uninstall();
        }
    }

在我的测试中它总是抛出异常:

java.lang.IllegalArgumentException: charset may not be null or empty
    at com.google.appengine.repackaged.org.apache.commons.httpclient.util.EncodingUtil.getString(Unknown Source)
    at com.google.appengine.repackaged.org.apache.commons.httpclient.util.EncodingUtil.getString(Unknown Source)
    at com.google.appengine.tools.remoteapi.AppEngineClient$Response.getBodyAsString(AppEngineClient.java:138)
    at com.google.appengine.tools.remoteapi.RemoteApiInstaller.getAppIdFromServer(RemoteApiInstaller.java:318)
    at com.google.appengine.tools.remoteapi.RemoteApiInstaller.loginImpl(RemoteApiInstaller.java:278)
    at com.google.appengine.tools.remoteapi.RemoteApiInstaller.login(RemoteApiInstaller.java:239)
    at com.google.appengine.tools.remoteapi.RemoteApiInstaller.install(RemoteApiInstaller.java:106)

......

我确定用户名和密码是管理员一号,我使用 GAE 1.7、联合登录、高复制数据存储。

有任何想法吗?谢谢。

4

2 回答 2

0

代码对我有用。您只需要确保将“your_target_app_id”替换为 applicationID

于 2013-01-08T10:46:00.667 回答
0

我想我找到了答案,我使用联合登录,目前 GAE 远程 API 不支持联合登录——太糟糕了,我花了很多时间调试。

于 2013-01-11T00:54:55.177 回答