Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java从奇怪但有效的url获取域_Java_Url - Fatal编程技术网

使用java从奇怪但有效的url获取域

使用java从奇怪但有效的url获取域,java,url,Java,Url,我需要从这个url获取主机 android-app://com.google.android.googlequicksearchbox?Pub_id={siteID} java.net.URL和java.net.URI无法处理它。问题在于{和}字符对URI无效。看起来像是创建URI时未正确解析的占位符 您可以使用String.replaceAll()删除这两个字符: String value = "android-app://com.google.android.googlequicksea

我需要从这个url获取主机

android-app://com.google.android.googlequicksearchbox?Pub_id={siteID} 

java.net.URL
java.net.URI
无法处理它。

问题在于
{
}
字符对URI无效。看起来像是创建URI时未正确解析的占位符

您可以使用
String.replaceAll()
删除这两个字符:

String value = "android-app://com.google.android.googlequicksearchbox?Pub_id={siteID}";
URI uri = URI.create(value.replaceAll("[{}]", ""));
System.out.println(uri.getHost()); // com.google.android.googlequicksearchbox

您可以尝试以下代码

String url = "android-app://com.google.android.googlequicksearchbox?Pub_id={siteID}";
        url = url.replace("{", "").replace("}","");
        URI u;
        try {
            u = new URI(url);
            System.out.println(u.getHost());
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }

你看,最终我需要路径、方案和查询。
我刚刚找到了用于解析此类URL的超级快速库

它也非常灵活

如果没有为
android应用程序安装协议处理程序:
,则会收到一个带有“未知协议”的异常。另外,
{}
可能有问题:
“…?Pub_id=“+urlcoder.encode(“{siteID}”,“UTF-8”):
尽管我怀疑您需要填写
{siteID}
。请您写出对URI无效的所有字符。我知道另一个“\”@DennisGlot看到了吗