当请求将google plus profile url作为参数时,Google EndPoint不会被调用

时间:2016-03-17 12:14:52

标签: android google-app-engine google-plus google-cloud-endpoints

我的应用使用Google App Engine作为后端,它提供了谷歌加上& facebook登录选项给用户。

其中一个端点Api将用户个人资料图片网址作为输入参数,并尝试将其存储在用户个人资料表中。当用户选择google plus选项作为登录时,我的端点Api未成功调用,

我已经缩小了问题,发现它只发生在谷歌加登录场景和后端日志中我发现问题只是因为下面的参数是个人资料照片网址。

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.

我的Api课程声明:

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

}

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

2 个答案:

答案 0 :(得分:0)

您是否使用logging.info(),logging.error(),print等意外记录了图片的字节?将字节记录到记录器或标准输出可以使dev实例(甚至是生产实例)进入僵尸模式。

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

答案 1 :(得分:0)

自从我们将代码库从Eclipse迁移到Android Studio以来,我遇到了这个问题,在此迁移期间,我们的app-engine sdk版本从1.9.22更改为1.9.18。

回顾并对其曾经使用eclipse的原因进行比较分析,我尝试在这里使用1.9.22 app-engine sdk并解决了问题,僵尸行为已经没有了,甚至在开发环境中现在一切都很稳定。

我也检查了&删除了所有记录器和输出语句,尽管单独尝试解决了这个问题。

感谢您甚至让我知道将来在开发环境测试期间也会出错。