2017-01-27 5 views
0

У android a есть URL-адрес, такой как http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna&mode=json&units=metric&cnt=7&appid=02b7;Как я могу исправить ошибку сборки URI

Поэтому я использую 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

здесь два дополнительных персонажей% 26 'и '% 3D';

преобразовать этот URI в строку и заменить эти два символ с помощью замены методы

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

Но мой вопрос Как я могу построить ожидаемое Uri не заменяет два символа через строку заменить методы.

ответ

0

изменение:

final String appID="&appid="; 

в

final String appID="appid";