문자열을 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.URI
URI가 표준에 완전히 부호화되지 않으면 실패합니다.예를 들어 다음과 같이 해석해 보겠습니다.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
'programing' 카테고리의 다른 글
결과 Vue graphql에 쿼리 특성이 누락됨 (0) | 2022.07.26 |
---|---|
fork()가 내부적으로 clone()을 호출한다는 것이 사실입니까? (0) | 2022.07.26 |
정의보다 상수를 선호할까요? (0) | 2022.07.26 |
Java에 Sorted List가 없는 이유는 무엇입니까? (0) | 2022.07.26 |
ReferenceError: 응답이 정의되지 않았습니다. (0) | 2022.07.26 |