如何修复“预期的 URL 方案‘http’或‘https’但未找到冒号”错误?

新手上路,请多包涵

在我的应用程序中,我正在尝试使用片段中的哈希图连接 API。问题似乎是我连接到 API 的异步任务不想接受我的请求。错误提示 Expected URL scheme ‘http’ or ‘https’ but no colon was found

这是一个应用程序,我在其中使用微调器,因此用户可以根据自己的选择选择加载不同的数据。我试图在哈希映射中摆弄,但现在问题似乎出在创建任务中。

这是我启动任务的微调器


        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view,
                                       int position, long id){
            Toast.makeText(getActivity(),"Location selected: "+locations[position], Toast.LENGTH_SHORT )
                    .show();
            map.get(locations[position]);
            //create the task
                ChooseLocationTask task = new ChooseLocationTask(location, position, value);
            // start the task
                task.execute();
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {

            }
        });

这是异步任务的构造函数,它似乎也不起作用:

         this.location = location;
        this.value = value;
        String url ="";
        switch(selected){
            case 1:
                url = url1.getUrl();
                break;
            case 2:
                url= url2.getUrl();
                break;
            case 3:
                url= url3.getUrl();
                break;
            case 4:
                url= url4.getUrl();
                break;
            case 5:
                url = url5.getUrl();
                break;
            case 6:
                url = url6.getUrl();
                break;
            case 7:
                url = url7.getUrl();
                break;
            case 8:
                url= url8.getUrl();
                break;
            case 9:
                url = url9.getUrl();
        }
        request = new Request.Builder().url(url).build();
    }

logcat 中的错误表明问题出在第一个代码示例中的创建任务和第二个示例中的请求中。我希望用户在单击微调器中的某些字段时看到来自 API 的值。谢谢你的帮助

原文由 Albína Mrázová 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4.8k
1 个回答

网址必须以 http://https:// ,您的网址是 ""

编辑:我看到的另一个可能的问题是你的 switch 语句中没有 default: 分支 - 如果变量 selected 的值小于 1 或大于 9 你的 url将为空,因此不会以 http://https://

此外,您似乎从未使用过名为 value 的变量。也许您打算在 switch 语句中使用它?

原文由 user10417531 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题