API 요청 URL(URI) 만들기(조합하기) -Uri.Builder사용하기-

출처: Udacity

API에 요청할 URL(URI)를 동적으로 만들어보자. Uri.Builder클래스를 사용하였다.


일단 베이스 요청 URL을 정의한다.
private static final String USGS_REQUEST_URL = "http://earthquake.usgs.gov/fdsnws/event/1/query";

URL이 사용되는곳으로 가 Uri, Uri.Builder를 정의하고 사용하면된다.
 @Override
 public Loader<List<Earthquake>> onCreateLoader(int i, Bundle bundle) {

     SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
     String minMagnitude = sharedPrefs.getString(
                 getString(R.string.settings_min_magnitude_key),
                 getString(R.string.settings_min_magnitude_default));
     Uri baseUri = Uri.parse(USGS_REQUEST_URL);
     Uri.Builder uriBuilder = baseUri.buildUpon();

     uriBuilder.appendQueryParameter("format", "geojson");
     uriBuilder.appendQueryParameter("limit", "10");
     uriBuilder.appendQueryParameter("minmag", minMagnitude);
     uriBuilder.appendQueryParameter("orderby", "time");

     return new EarthquakeLoader(this, uriBuilder.toString());
 }


-----------------------------------------------------------------------------------------------------


[만들고자하는 URL은 다음과같다]
http://api.example.org/data/2.5/forecast/daily?q=94043&mode=json&units=metric&cnt=7

[URL을 만드는데 쓰이는 변수를 지정해준다]
final String FORECAST_BASE_URL = 
    "http://api.example.org/data/2.5/forecast/daily?";
final String QUERY_PARAM = "q";
final String FORMAT_PARAM = "mode";
final String UNITS_PARAM = "units";
final String DAYS_PARAM = "cnt";

[Uri.parse()와 appendQueryParameter()를 이용해 Uri를 만들어준다]
Uri builtUri = Uri.parse(FORECAST_BASE_URL)
    .buildUpon()
    .appendQueryParameter(QUERY_PARAM, params[0])
    .appendQueryParameter(FORMAT_PARAM, "json")
    .appendQueryParameter(UNITS_PARAM, "metric")
    .appendQueryParameter(DAYS_PARAM, Integer.toString(7))
    .build();

[만들어진 URI를 URL로 변경해준다]
URL url = new URL(builtUri.toString());













댓글

이 블로그의 인기 게시물

TextView에 글자를 넣어주는 방법(setText, append)

텍스트 뷰의 배경을 원형 이미지로 지정하고, 배경 색상 채우기(안드로이드)