Преобразование String в Uri

Как преобразовать String в Uri на Java (Android)? то есть:.

String myUrl = "http://stackoverflow.com";

myUri =???;

Ответ 1

Статический метод parse можно использовать из Uri

Uri myUri = Uri.parse("http://stackoverflow.com")

Ответ 2

Я просто использую пакет java.net. Здесь вы можете сделать следующее:

String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);

Ответ 3

Что вы собираетесь делать с URI?

Если вы собираетесь использовать его только с HttpGet, вы можете просто использовать строку непосредственно при создании экземпляра HttpGet.

HttpGet get = new HttpGet("http://stackoverflow.com");

Ответ 4

Вы можете проанализировать строку в 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);
}

NB: Существует разница между андроидами URI и Uri.

Ответ 5

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());