java - 使用 URI 构建器构建 URL

标签 java android url uribuilder

编码的 URL -

https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select%20*%20where%20((A%20%3D%20201))&key=1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU

解码后的 URL -

https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select * where ((A= 201))&key=1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU

在 URI 构建器中,我们应该使用哪个 URL 进行编码或解码?

此外,给定的代码也不起作用:-

String xyz="1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU";
    String X="201";


    final String STUDENT_RECORD_URL="https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select*where";
    final String Frag1 = "A";
    final String Frag2 =  "key";
    Builder builder = Uri.parse(STUDENT_RECORD_URL).buildUpon();
    builder.appendQueryParameter(Frag1,X);
    builder.appendQueryParameter(Frag2,xyz);
    String finalUri=builder.build().toString();

最佳答案

我认为您误解了您的查询参数是什么。它们都应该是您网址中的键值对。对于你的 url https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select * where ((A= 201))&key=1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU,构建它看起来像:

final String STUDENT_RECORD_URL="https://spreadsheets.google.com/tq";

Builder builder = Uri.parse(STUDENT_RECORD_URL).buildUpon();
builder.appendQueryParameter("txq", "out:JSON");
builder.appendQueryParameter("tq", "select * where ((A= 201))");
builder.appendQueryParameter("key", "1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU");

String finalUri = builder.build().toString();

appendQueryParameter 方法将自动对您的参数进行 url 编码。

关于java - 使用 URI 构建器构建 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361233/

相关文章:

java - 方向改变时出现 InflateException

java - 来自 Glassfish 的 HttpClient+SSL

android - 使用 ActionBarSherlock 从全屏 Activity 更平滑地过渡

java - 在应用程序的内部存储中提取 Zip 文件 - Android?

具有协调器布局的 ViewPager fragment 中的 Android 设计支持库 FAB

swift - 如何将带有“字符的字符串转换为URL

java.net.URL 引用父目录中的文件

java - 如何在 Java 中存储文本文件字符串以供以后使用

Javascript Regex 去掉 URL 的最后一部分 - 在最后一个斜杠之后

r - R : Function returns both error and warning - store both with tryCatch()