6 ответов:
Я просто использую
java.netпакета. Здесь вы можете сделать следующее:String myUrl = "http://stackoverflow.com"; URI myURI = new URI(myUrl);
Если вы используете Котлин и расширения Kotlin android, то есть красивый способ сделать это.
val uri = myUriString.toUri()для добавления расширений Kotlin (KTX) в ваш проект добавьте следующее в сборку вашего модуля приложения.gradle
repositories { google() } dependencies { implementation 'androidx.core:core-ktx:1.0.0-rc01' }
что вы собираетесь делать с URI?
Если вы просто собираетесь использовать его с HttpGet например, вы можете просто использовать строку непосредственно при создании экземпляра HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
Вы можете проанализировать строку в Uri с помощью Uri.parse () как показано ниже:
Uri myUri = Uri.parse("http://stackoverflow.com");// Creates a new Implicit Intent, passing in our Uri as the second paramater. Intent webIntent = new Intent(Intent.ACTION_VIEW, myUri); // Checks to see if there is an Activity capable of handling the intent if (webIntent.resolveActivity(getPackageManager()) != null){ startActivity(webIntent); }
парсер Java в
java.net.URIпроизойдет сбой, если URI не будет полностью закодирован в соответствии со своими стандартами. Например, попробуйте разобрать:http://www.google.com/search?q=cat|dog. Для вертикальной полосы будет создано исключение.urllib позволяет легко конвертировать строку
java.net.URI. Он будет предварительно обрабатывать и экранировать URL.assertEquals("http://www.google.com/search?q=cat%7Cdog", Urls.createURI("http://www.google.com/search?q=cat|dog").toString());
Comments