programing

문자열을 URI로 변환

firstcheck 2022. 7. 26. 00:26
반응형

문자열을 URI로 변환

Java(Android)에서 문자열을 URI로 변환하려면 어떻게 해야 하나요?예:

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

myUri = ?;

를 사용할 수 있습니다.parse정적 방법Uri

//...
import android.net.Uri;
//...

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

저는 그냥 사용하고 있습니다java.net 패키지.여기서 다음 작업을 수행할 수 있습니다.

...
import java.net.URI;
...

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

만약 당신이 Kotlin과 Kotlin의 안드로이드 확장을 사용하고 있다면, 이것을 하는 아름다운 방법이 있습니다.

val uri = myUriString.toUri()

프로젝트에 Kotlin 확장자(KTX)를 추가하려면 앱 모듈의 build.gradle에 다음을 추가합니다.

  repositories {
    google()
}

dependencies {
    implementation 'androidx.core:core-ktx:1.0.0-rc01'
}

다음과 같이 URI.parse()사용하여 문자열을 URI로 해석할 수 있습니다.

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: Androids URI와 URI 사이에는 차이가 있습니다.

Java의 파서java.net.URIURI가 표준에 완전히 부호화되지 않으면 실패합니다.예를 들어 다음과 같이 해석해 보겠습니다.http://www.google.com/search?q=cat|dog세로 막대에 대해 예외가 발생합니다.

urlib는 문자열을 쉽게 변환합니다.java.net.URI. URL을 전처리하여 이스케이프합니다.

assertEquals("http://www.google.com/search?q=cat%7Cdog",
    Urls.createURI("http://www.google.com/search?q=cat|dog").toString());

이것도 할 수 있어

http의 경우

var response = await http.get(Uri.http("192.168.100.91", "/api/fetch.php"));

또는

https의 경우

var response = await http.get(Uri.https("192.168.100.91", "/api/fetch.php"));

URI를 어떻게 할 거예요?

예를 들어 HttpGet과 함께 사용할 경우 HttpGet 인스턴스를 생성할 때 문자열을 직접 사용할 수 있습니다.

HttpGet get = new HttpGet("http://stackoverflow.com");
import java.net.URI;

아래도 도움이 됩니다.

URI uri = URI.create("http://stackoverflow.com");

또는

URI uri = new URI("http://stackoverflow.com");

언급URL : https://stackoverflow.com/questions/3487389/convert-string-to-uri

반응형