在 android 中有一个类似 http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna&mode=json&units=metric&cnt=7&appid=02b7的 URL ;
所以我使用 Uri builder
final String FORECAST_BASE_URL=
"http://api.openweathermap.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";
final String appID="&appid=";
//http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna&mode=json&units=metric&cnt=7
//now uri build
Uri buildUri = Uri.parse(FORECAST_BASE_URL).buildUpon()
.appendQueryParameter(QUERY_PARAM,"khulna")
.appendQueryParameter(FORMAT_PARAM,"json")
.appendQueryParameter(UNITS_PARAM,"metric")
.appendQueryParameter(DAYS_PARAM,Integer.toString(7))
.appendQueryParameter(appID, BuildConfig.OPEN_WEATHER_MAP_API_KEY)
.build();
这里有两个额外的字符'%26'和'%3D';
我将此 URI 转换为字符串并使用替换方法替换这两个字符
String url = buildUri.toString().replace("%3D","").replace("%26","");
但我的问题是如何构建预期的 Uri 而不是通过字符串替换方法替换两个字符。