我正在使用Google云终端,一切都很好。 但是当我将我的Android密钥和Web密钥更新到生产模式时,每个请求都会返回 200 null或400 null。
我已经重建了项目并且没有任何效果我在Android和api资源管理器中尝试并且都返回:状态代码然后返回null 尽管完整的结果包含在JSON格式的响应中。 我得到了响应,但状态消息始终为null
更新: 经过一些实验,谷歌浏览器或安卓设备返回的状态信息为空,但在Firefox上它不是空的并且正常工作。 我不知道是什么原因
答案 0 :(得分:0)
最新的Chrome版本存在问题。希望在下一个版本或更新chrome中尽快修复它。 即使我面临同样的问题。一个简单的解决方法是在其他浏览器(IE / Firefox / Safari)中测试端点。
希望这有帮助。
答案 1 :(得分:0)
我发现问题是谷歌Chrome新算法可能会删除一些标题以使其浏览器更快。 解决方案是在chrome上,不要使用它并使用任何其他浏览器,它应该正常工作。 但是,在Android上特别是Lollipop(5.0)它基于Chromenum,它基于Chrome ...我面对的问题与谷歌浏览器面临的android和null响应是同样的问题。 我已将Google云端点的用户代理更改为Firefox,一切正常。
private static final String firexFox_userAgent = "Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0";
private static final HttpRequestInitializer intializer = new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) throws IOException {
final HttpHeaders headers = request.getHeaders();
List<String> agents = new ArrayList<>();
agents.add(firexFox_userAgent);
headers.put("User-Agent", agents);
}
};
并将其添加到api builder
private static UserRegistrationApi mUserRegApi mUserRegBuilder = new UserRegistrationApi.Builder(EnpointConsts.sAndroidHttp, EnpointConsts.sGsonFactory, CredentialHolder.getCredential()).setApplicationName(Consts.APP_ID).setHttpRequestInitializer(intializer);