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

时间:2019-05-23 09:10:43

标签: java android

在我的应用中,我尝试使用片段中的哈希图与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的值。谢谢您的帮助

2 个答案:

答案 0 :(得分:0)

URL必须以http://https://开头,您的URL为""

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

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

答案 1 :(得分:-1)

就我而言,我像您一样使用 baseUrl

将其更改为 baseURL(网址大写)即可正常工作。