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

how to build REST client in android using HttpUrlConnection

我想构建一个使用一些 REST API 的 android 应用程序。

我正在使用 HttpURLConnection 进行基本身份验证和 GET/PUT 一些数据,但我觉得我做错了。 我为每个请求调用了两个 类 ConnectionPUTConnectionGET,因为每个 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 客户端,而是尝试使用适应性强且可靠的库,如 Retrofit 和 Volley,用于网络.

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

想了解更多信息,建议您研究一下下面这篇关于 Retrofit 和 Volley 的文章

Android - Using Volley for Networking

Android -Using Retrofit for Networking

REST 客户端使用 HttpURLConnection

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();

            } 

        }