java.lang.IllegalArgumentException:带有改进的非法URL

时间:2016-01-31 13:39:47

标签: android encoding character-encoding retrofit2

我正在尝试在我的应用程序中调用api 我有以下网址模板

  

test-test.domainname.com/feeds/json/v3/attribute/attribute

我正在使用改造2 但我得到以下致命异常

  

非法网址:test-test.domainname.com

这是我的界面

 <script type="text/javascript">
     var data;
     var chart;

      // Load the Visualization API and the piechart package.
      google.charts.load('current', {'packages':['corechart']});

      // Set a callback to run when the Google Visualization API is loaded.
      google.charts.setOnLoadCallback(drawChart);

      // Callback that creates and populates a data table,
      // instantiates the pie chart, passes in the data and
      // draws it.
      function drawChart() {

        // Create our data table.
        data = new google.visualization.DataTable();
        data.addColumn('string', '');
        data.addColumn('number', 'Serie1'); // DATA HERE
        data.addColumn('number', 'Serie2'); // DATA HERE
        data.addRows([
          ['Mushrooms', 3,4], // DATA HERE
          ['Onions', 1,4],// DATA HERE
          ['Olives', 1,6],// DATA HERE
          ['Zucchini', 1,7],
          ['Pepperoni', 2,4]// DATA HERE
        ]);


        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':300};

        // Instantiate and draw our chart, passing in some options.
        chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
        google.visualization.events.addListener(chart, 'select', selectHandler);
        chart.draw(data, options);
      }

      function selectHandler() {
        var selectedItem = chart.getSelection()[0];
        var value = data.getValue(selectedItem.row, 0);
        alert('The user selected ' + value);
      }

    </script>
    <!--Div that will hold the pie chart-->
    <div id="chart_div" style="width:400; height:300"></div>

有人可以帮我解决这个问题......

3 个答案:

答案 0 :(得分:9)

我的基本网址位于:http://myapiname.azurewebservices.net

和Feed方法是这样的:

public interface Iinterface{
   @GET("/feeds/json/v3/attribute/"+attribute)
   Call<ArrayList<result>>getresult();
}

工作得很好。请添加http or https,然后重试

答案 1 :(得分:5)

您没有协议部分。前置http://https://,具体取决于适用于您的网址的内容 -

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://test-test.domainname.com")
        // ... other retrofit options
        .build();  

答案 2 :(得分:0)

就我而言,  我的基本网址包含空格字符。 (例如http://myapiname.azure webservices.net

我通过删除基本URL中的空格来解决了该错误

  

当您传递的网址为时,将触发改造中的非法网址异常   确实不存在或无法使用url标准修复。