我正在尝试理解Udacity Android Development课程中涉及的这个类/方法,我很困惑。我想知道String Param_QUERY =“q”是如何工作的,并寻找任何解释。另外,我也对PARAM_SORT和sortBy感到困惑。关于这三个变量及其使用方式的任何解释都将非常感激。谢谢,抱歉任何奇怪的格式。
public class NetworkUtils {
final static String GITHUB_BASE_URL =
"https://api.github.com/search/repositories";
final static String PARAM_QUERY = "q";
final static String PARAM_SORT = "sort";
final static String sortBy = "stars";
/**
* Builds the URL used to query Github.
*
* @param githubSearchQuery The keyword that will be queried for.
* @return The URL to use to query the weather server.
*/
public static URL buildUrl(String githubSearchQuery) {
Uri builtUri = Uri.parse(GITHUB_BASE_URL).buildUpon()
.appendQueryParameter(PARAM_QUERY, githubSearchQuery)
.appendQueryParameter(PARAM_SORT, sortBy)
.build();
URL url = null;
try {
url = new URL(builtUri.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
答案 0 :(得分:0)
它会使你的网址看起来像这样,appendQueryParameter会在网址中添加使用过的参数
for (i in 1:1000){
eval(as.symbol(paste0("DF","i")))[eval(as.symbol(paste0("DF","i")))==0]<-1
}
答案 1 :(得分:0)
这不是一个Android问题,但我会解释发生了什么。首先,代码正在做的是构建一个字符串,如:
https://api.github.com/search/repositories?q=githubSearchQuery&sort=stars
这是一个REST端点,当您在GitHub上查询该页面时,它搜索存储库,搜索字符串通过q=githubSearchQuery
,当然替换为您的输入,并根据{{1}对结果进行排序按星数排序。现在,Java部分的工作原理如下:
sort=stars
对于简单的情况,使用常量字符串,这会指定appendQueryParameter(PARAM_SORT, sortBy)
部分,并添加任何必需的sort=stars
以与其他参数链接。
&
这与appendQueryParameter(PARAM_QUERY, githubSearchQuery)
类似,但由于这是用户输入,因此字符串中可能有空格或其他特殊字符,因此q=githubSearchQuery
也会将您的字符串变为有效的HTML查询参数。因此,如果我搜索appendQueryParameter()
,我会得到查询参数& = /?
。
顺便说一句,q=%26+%3D+%2F%3F
部分不是标准,只是查询惯例(Google也使用它),而q=
是GitHub特有的选项。