0

Android では、 http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna&mode=json&units=metric&cnt=7&appid=02b7のような URL があります。

だから私はUriビルダーを使います

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();

しかし、出力は http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna&mode=json&units=metric&cnt=7&%26appid%3D=02b7です

ここに 2 つの余分な文字 '%26' と '%3D' があります。

この URI を文字列に変換し、replace メソッドを使用してこれら 2 つの文字を置き換えます

String url = buildUri.toString().replace("%3D","").replace("%26","");

しかし、私の質問は、文字列置換メソッドを使用して 2 つの文字を置換しないと予想される Uri を構築するにはどうすればよいかということです。

4

1 に答える 1