我想使用UriMatcher
来匹配自定义http链接。
我有以下代码:
UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
mUriMatcher.addURI("myLink", "http://a.b.c/?id=", 1);
mUriMatcher.addURI("myLink", "http://d.e.f/?id=", 2);
int match = mUriMatcher.match(Uri.parse("http://a.b.c/?id=123"));
但我总是在比赛结果中得到“-1”......
答案 0 :(得分:4)
UriMatcher匹配形式的Uris:
scheme://<authority>/<path>
它会忽略查询字符串(在网址中出现?之后出现的任何内容)
您使用以下方式向匹配器注册:
mUriMatcher.addURI(authority, path, result);
因此,在上面的简单示例中,您无法区分具有或不具有查询字符串的相同URL,但您可以在域名上进行匹配。使用:
mUriMatcher.addURI('a.b.c', '/', 1);
mUriMatcher.addURI('d.e.f', '/', 2);
您可以在每个匹配处理程序中使用UrlQuerySanitizer来决定是否存在您需要的查询内容。