我遇到了一个令我担心的问题,我在我的应用程序中使用URI bulder来构建用于在应用程序和我的Web服务器之间传输数据的URL,如下所示:
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("myData", fullData)
.appendQueryParameter("device", Build.SERIAL)
.appendQueryParameter("logintoken", token);
String query = builder.build().getEncodedQuery();
我有几个不同的连接构建这样的网址,并且它一直工作正常,直到最近我发现其中一个不包括最终查询中的设备或登录令牌,这会导致数据无法验证的问题。 myData字段可能很长,在这个特定情况下它大约有4000个字符,这看起来不是太大,我知道它已经处理了更大的数据。在搜索过后,我无法找到任何提及这些特定方法的大小限制的内容,只要您的服务器不限制它应该是好的限制。
经过一段时间试图找出为什么我最终只是切换变量,所以设备和登录是第一次,数据是在最后,它工作。
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("device", Build.SERIAL)
.appendQueryParameter("logintoken", token)
.appendQueryParameter("myData", fullData);
String query = builder.build().getEncodedQuery();
我的问题是为什么?我无法在文档中找到任何可能会发生此类事情的内容,而且它似乎是一种糟糕的解决方法,只是依赖于希望它不会在其他地方发生。我不认为我有任何使用多个大型参数的查询,但我假设一个人会因为发生的事情而迷失。