Uri问题

Tan*_*ner 4 java android uri http-get

所以我试图创建一个URL来使用httpget,下载页面源.但我每次运行应用程序时都遇到问题,它说我在字符串/ uri中有一个非法字符.这是我尝试过的代码.

String Search = "http://www.lala.com/";
Run Code Online (Sandbox Code Playgroud)

也,

HttpGet request = new HttpGet("http://www.lala.com/");
Run Code Online (Sandbox Code Playgroud)

每次我尝试,

Uri search = new Uri("http://www.lala.com/");
Run Code Online (Sandbox Code Playgroud)

我得到"无法实例化Uri".

我不确定我做错了什么,这也是获取页面源代码.

try
          {
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet("http://www.lala.com/");
            HttpResponse response = client.execute(request);


            InputStream in = response.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            StringBuilder str = new StringBuilder();
            String line = null;
            while((line = reader.readLine()) != null)
            {
                str.append(line);
            }
            in.close();
            html = str.toString();   
           }
           catch (IOException e1)
           {

           }
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!〜坦纳.

(lala.com不是我使用的网站顺便提一下:P)

nib*_*uen 6

这是因为Uri是一个抽象类,无法实例化.请改用:

Uri search = Uri.parse("http://www.lala.com/");
Run Code Online (Sandbox Code Playgroud)

如果使用HttpGet,则需要使用java.net.URI类而不是android Uri.一个简单的例子:

try {
        URI search = new URI("http://www.lala.com/");
        new HttpGet(search);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)