API 요청 URL(URI) 만들기(조합하기) -Uri.Builder사용하기-
출처: Udacity
API에 요청할 URL(URI)를 동적으로 만들어보자. Uri.Builder클래스를 사용하였다.
일단 베이스 요청 URL을 정의한다.
URL이 사용되는곳으로 가 Uri, Uri.Builder를 정의하고 사용하면된다.
-----------------------------------------------------------------------------------------------------
[만들고자하는 URL은 다음과같다]
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());
댓글
댓글 쓰기