티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Use URI builder in Android or create URL with variables
Android에서 URI 빌더를 사용하거나 변수로 URL 생성
문제 내용
I'm developing an Android app. I need to build a URI for my app to make an API request. Unless there's another way to put a variable in a URI, this is the easiest way I've found. I found that you need to use Uri.Builder
, but I'm not quite sure how to. My url is:
저는 안드로이드 앱을 개발하고 있습니다. 제 앱이 API 요청을 하기 위해서는 URI를 구축해야 합니다. URI에 변수를 넣는 다른 방법이 없는 한, 이것이 제가 찾은 가장 쉬운 방법입니다. 저는 Uri.Builder를 사용해야 한다는 것을 알았지만 방법을 잘 모르겠습니다. 제 URL은 다음과 같습니다.
http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=[redacted]&mapid=value
My scheme is http, authority is lapi.transitchicago.com
, path is /api/1.0
, path segment(s) is ttarrivals.aspx
, and query string is key=[redacted]&mapid=value
.
제 스키마는 http, 권한은 lapi.transitchicago.com, 경로는 /api/1.0, 경로 세그먼트는 ttarrivals.aspx, 쿼리 문자열은 key=[redacted]&mapid=value입니다.
My code is below:
제 코드는 아래와 같습니다:
Intent intent = getIntent();
String value = intent.getExtras().getString("value");
Uri.Builder builder = new Uri.Builder();
builder.scheme("http")
.authority("www.lapi.transitchicago.com")
.appendPath("api")
.appendPath("1.0")
.appendPath("ttarrivals.aspx")
.appendQueryParameter("key", "[redacted]")
.appendQueryParameter("mapid", value);
I understand that I can do URI.add
, but how do I integrate it into the Uri.Builder
? Should I add everything like URI.add(scheme)
, URI.add(authority)
and so on? Or is that not the way to do it? Also, is there any other easier way to add a variable to a URI/URL?
URI.add를 할 수 있다는 것을 알고 있지만 Uri.Builder에 어떻게 통합합니까? URI.add(scheme), URI.add(authority) 등을 모두 추가해야 하나요? 아니면 그렇게 하는 것이 아닌가요? 또한 URI/URL에 변수를 추가하는 더 쉬운 다른 방법이 있을까요?
높은 점수를 받은 Solution
Let's say that I want to create the following URL:
다음 URL을 생성한다고 가정해 보겠습니다:
https://www.myawesomesite.com/turtles/types?type=1&sort=relevance#section-name
To build this with the Uri.Builder
I would do the following.
Uri.Builder로 이것을 빌드하려면 다음을 수행합니다.
Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
.authority("www.myawesomesite.com")
.appendPath("turtles")
.appendPath("types")
.appendQueryParameter("type", "1")
.appendQueryParameter("sort", "relevance")
.fragment("section-name");
String myUrl = builder.build().toString();
가장 최근 달린 Solution
Best answer: https://stackoverflow.com/a/19168199/413127
베스트 답변: https://stackoverflow.com/a/19168199/413127
Example for
예
http://api.example.org/data/2.5/forecast/daily?q=94043&mode=json&units=metric&cnt=7
Now with Kotlin
이제 코틀린과 함께
val myUrl = Uri.Builder().apply {
scheme("https")
authority("www.myawesomesite.com")
appendPath("turtles")
appendPath("types")
appendQueryParameter("type", "1")
appendQueryParameter("sort", "relevance")
fragment("section-name")
build()
}.toString()
출처 : https://stackoverflow.com/questions/19167954/use-uri-builder-in-android-or-create-url-with-variables
'개발 > 안드로이드' 카테고리의 다른 글
ArrayList를 SharedPreferences에 저장하기 (0) | 2023.01.17 |
---|---|
Android Fragment 에서 뒤로 가기 버튼 처리하기 (0) | 2023.01.16 |
안드로이드에서 전체 히스토리 스택을 지우고 새로운 액티비티를 시작하는 방법 (0) | 2023.01.14 |
Android에서 WebView와 loadData (0) | 2023.01.14 |
제목 없이 DialogFragment 만들기 (0) | 2023.01.14 |