首页 > 解决方案 > 如何修复“预期的 URL 方案 'http' 或 'https' 但未找到冒号”错误?

问题描述

在我的应用程序中,我正在尝试使用片段中的哈希图与 API 连接。问题似乎是我连接到 API 的异步任务不想接受我的请求。错误显示预期的 URL 方案“http”或“https”,但未找到冒号

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

这是我启动任务的微调器


        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 的值。谢谢你的帮助

标签: javaandroid

解决方案


URL 必须以http://or开头https://,您的 url 是""

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

此外,您似乎从不使用名为value. 也许您打算在您的 switch 语句中使用它?


推荐阅读