当前位置: 首页 > 知识库问答 >
问题:

如何修复URI构建错误

闻人越
2023-03-14

在android a有一个URL像http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna

所以我使用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

这里有两个额外的字符'&'和'=';

我将这个URI转换为字符串,并使用replace方法替换这两个字符

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

但我的问题是,如何构建预期的Uri,而不是通过字符串替换方法替换两个字符。

共有1个答案

燕砚文
2023-03-14

改变:

final String appID="&appid=";

final String appID="appid";
 类似资料:
  • 问题内容: 当我在Jenkins工作流程(Jenkins 1.609.1,工作流程1.8)上运行以下代码时,出现“ NotSerializableException”错误(同样在下面)。但是,如果我将“构建作业”移到“ for”范围之外,则可以正常工作(该作业已激活)。任何想法为什么这种行为? 得到错误: 问题答案: 我thnk这是因为它试图序列化不可序列化的迭代器只要它击中了一步。有关使用不可序

  • ProjectAAA.obj:错误LNK2001:未解析的外部符号" public:_ this call X::class event::class event(unsigned int)"(??0类事件@X@@QAE@I@Z) 我已经定义了不知道如何修复这个LINK错误。 欢迎提出任何建议。 谢谢你 更多信息: 1. 现在我已经完全隔离了错误: 1.

  • 我正在修复我的Jetty java应用程序的CVE-2021-44228和其他类似的log4j发现。 我试图升级到2.17.0,但不是我所有的应用程序都可以升级,因为其中一些依赖于旧版本的Jetty,由于多java版本的jars,它不能与新的log4j一起工作(请参阅错误扫描条目META-INF/版本/9/org/apache/日志/log4j/util/StackLocator.class码头和

  • 我有我的android studio项目,其中有四个库模块和一个应用程序模块。 我有六个jar文件,保存在一个目录中。每个模块都使用一些jar文件。因此,我在各个模块的build.gradle文件中添加了这些jar的依赖项,并使用“compile files('./../../../deliveries/xyz.jar')使用相对路径。应用程序模块依赖于所有这些库模块。当我创建我的应用程序模块的发

  • 我发现了一个mysql创建表语法错误,希望有人能在我失去理智之前发现它。 错误1064(42000):您的SQL语法中有错误;查看与您的MySQL server版本相对应的手册,以了解在第2行“int not null auto_increment,Client_ID int not null,Start_Time varchar(5),star”附近使用的正确语法 mysql Ver 14.14