1

我遇到了一个让我担心的问题,我在我的应用程序中使用 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();

我有几个不同的连接构建这样的 url,直到最近我发现其中一个没有在最终查询中包含设备或登录令牌,这会导致数据无法验证的问题。myData 字段可能很长,在这种特定情况下,它大约有 4000 个字符,看起来不太大,我知道它可以处理更大的数据。在四处搜索之后,我找不到任何提及这些特定方法的大小限制的内容,只要您的服务器不限制限制,它应该是好的。

经过一段时间试图弄清楚为什么我最终只是切换了变量,所以设备和登录是第一位的,数据在最后并且它起作用了。

Uri.Builder builder = new Uri.Builder()
    .appendQueryParameter("device", Build.SERIAL)
    .appendQueryParameter("logintoken", token)
    .appendQueryParameter("myData", fullData);
String query = builder.build().getEncodedQuery();

我的问题是为什么?我在文档中找不到任何暗示会发生这种情况的东西,而且这似乎是一个糟糕的解决方法,只是依赖于希望它也不会在其他地方发生。我不认为我有任何使用多个大参数的查询,但我假设根据发生在我身上的事情会迷路。

4

0 回答 0