Как преобразовать String в Uri на Java (Android)? то есть:.
String myUrl = "http://stackoverflow.com";
myUri =???;
Как преобразовать String в Uri на Java (Android)? то есть:.
String myUrl = "http://stackoverflow.com";
myUri =???;
Статический метод parse
можно использовать из Uri
Uri myUri = Uri.parse("http://stackoverflow.com")
Я просто использую пакет java.net
.
Здесь вы можете сделать следующее:
String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);
Что вы собираетесь делать с URI?
Если вы собираетесь использовать его только с HttpGet, вы можете просто использовать строку непосредственно при создании экземпляра HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
Вы можете проанализировать строку в Uri, используя Uri.parse(), как показано ниже:
Uri myUri = Uri.parse("http://stackoverflow.com");
Ниже приведен пример того, как вы можете использовать свой недавно созданный Uri в неявном намерении. Для просмотра в браузере на телефоне пользователя.
// 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());