Java 如何使用HttpUrlConnection在android中构建REST客户端

Java 如何使用HttpUrlConnection在android中构建REST客户端,java,android,rest,android-studio,androidhttpclient,Java,Android,Rest,Android Studio,Androidhttpclient,我想构建一个使用RESTAPI的android应用程序 我正在使用HttpURLConnection进行基本身份验证并获取/放置一些数据,但我觉得我做得不对。 我为每个请求调用了两个类ConnectionPUT和ConnectionGET,因为每个HttpURLConnection实例都用于发出单个请求 使用HttpURLConnection使用Android构建REST客户端的正确方法是什么?这是在Android中使用HttpURLConnection调用Http GET的示例代码 URL

我想构建一个使用RESTAPI的android应用程序

我正在使用
HttpURLConnection
进行基本身份验证并获取/放置一些数据,但我觉得我做得不对。 我为每个请求调用了两个类
ConnectionPUT
ConnectionGET
,因为每个HttpURLConnection实例都用于发出单个请求


使用HttpURLConnection使用Android构建REST客户端的正确方法是什么?

这是在Android中使用HttpURLConnection调用Http GET的示例代码

  URL url;
    HttpURLConnection urlConnection = null;
    try {
        url = new URL("your-url-here");

        urlConnection = (HttpURLConnection) url
                .openConnection();

        InputStream in = urlConnection.getInputStream();

        InputStreamReader isw = new InputStreamReader(in);

        int data = isw.read();
        while (data != -1) {
            char current = (char) data;
            data = isw.read();
            System.out.print(current);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (urlConnection != null) {
            urlConnection.disconnect();


}    
    }
但是我强烈建议不要重新发明轮子,为你的android应用程序创建
REST
客户端,而应该尝试使用经过良好调整且可靠的库,如Reformation和Volley,用于联网

它们是高度可靠和经过测试的,并且删除了您必须为网络通信编写的所有样板代码

要了解更多信息,我建议您学习下面关于改装和截击的文章


使用HttpURLConnection的REST客户端

try {

        URL url = new URL("YOUR_URL");
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();

        BufferedReader reader = new BufferedReader(
                new InputStreamReader(conn.getInputStream()));

        StringBuffer data= new StringBuffer(1024);
        String tmpdata="";
        while((tmpdata=reader.readLine())!=null) {              

               data.append(tmpdata).append("\n");

           }
        reader.close();

     }catch(Exception e){  
             e.printStackTrace();

        } finally {

         if (conn!= null) {
             conn.disconnect();

            } 

        }

没有一个“正确的方法”可以做到这一点。有很多方法可以实现这一点,无数的库可以帮助您实现这一点,更不用说涉及这一主题的无数的SO和答案了。您应该具体说明您遇到的问题,并向我们展示确切的错误。@toKrause谢谢,我想要那些“无数库”,以便我可以测试它们@Farhadfaghi我多次调用api,我已经参与了一些web项目,桌面应用程序和数据库:我们与数据库建立了1个连接!所以我觉得我错过了一些东西。这是我在REST API上的第一个项目^^“正如我已经提到的,已经有很多项目涉及到这个主题;至少提到了很多可用的库。谢谢你的回答!!