Google 当请求具有 google 加上配置文件 url 作为参数时,不会调用端点

Google EndPoint not getting called when request has google plus profile url as parameter

我的应用程序使用 Google App Engine 作为后端,它为用户提供 google plus & facebook 登录选项。

其中一个端点 Api 将用户个人资料照片 url 作为输入参数,并尝试将其存储在用户个人资料 table 中。当用户选择 google 加上登录

选项时,我的端点 Api 未成功调用

我已经缩小了问题的范围,发现它只发生在 google 加登录场景中,从后端日志我看到问题只是因为下面的参数是个人资料照片 url.

https:%2F%2Flh3.googleusercontent.com%2F-xPc6TIzQiFA%2FAAAAAAAAAAI%2FAAAAAAAAAeU%2FUIIpz-4G1dQ%2Fphoto.jpg%3Fsz=400

来自日志的后端请求(出于隐私原因更改数据)。

/_ah/api/registrationAPI/v2/XXXXXX/Rahul%20Purswani/rahulfhp@gmail.com/https:%2F%2Flh3.googleusercontent.com%2F-xPc6TIzQiFA%2FAAAAAAAAAAI%2FAAAAAAAAAeU%2FUIIpz-4G1dQ%2Fphoto.jpg%3Fsz=400/XXX/YYY/VVV, returning NOBODY to imply authentication is in progress.

我的ApiClass声明:

@Api(name="registrationAPI",
        version="v2",
     namespace=@ApiNamespace(ownerDomain="backend.XXX.XXX.YY",ownerName="backend.XXX.XXX.YY",packagePath=""))
public class PlayerRegistrationEndPoint {

}

令我惊讶的是,只有当我通过真实设备在本地开发服务器上测试 Api 时才会发生这种情况。如果我部署我的 api 一切正常,我几乎花了一天时间来缩小范围,如果你对此有任何线索,那将是非常可观的。

您是否不小心使用 logging.info()、logging.error()、打印等记录了图片的字节数?将字节记录到记录器或标准输出可以使开发实例(甚至生产实例)进入僵尸模式。

这在我身上发生过很多次。检查所有日志以确保您没有尝试记录不是基本变量类型的内容。

自从我们将代码库从 Eclipse 迁移到 Android Studio 后,我就遇到了这个问题,在此迁移期间,我们的应用程序引擎 sdk 版本从 1.9.22 更改为 1.9.18。

回过头来对比分析之前为什么用eclipse,我在这里尝试用1.9.22 app-engine sdk,问题解决,僵尸行为没有了,甚至在开发环境中一切都稳定现在。

我还检查并删除了所有记录器和输出语句,但单独尝试并没有解决问题。

感谢你甚至让我知道它在未来的开发环境测试中也可能出错。