手记

android中post,put,get,delete简洁写法

public class HttpUtil {

    private static final String TAG = HttpUtil.class.getSimpleName();

    public static String get(final String strUrl) {

        try {
            URL url = new URL(strUrl);
            HttpURLConnection conn = (HttpURLConnection)
                    url.openConnection();
            conn.setReadTimeout(5000);
            conn.setRequestMethod("GET");

            int response = conn.getResponseCode();
            if(response == HttpURLConnection.HTTP_OK) {
                InputStream stream = conn.getInputStream();
                return dealResponseResult(stream);

            }else{
                return null;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String doDelete(String urlStr,String params){
        try{
            URL url = new URL(urlStr);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setReadTimeout(5000);
            conn.setRequestMethod("DELETE");

            //获得一个输出流,向服务器写入数据
            OutputStream outputStream = conn.getOutputStream();
            outputStream.write(params.getBytes());

            int response = conn.getResponseCode();
            if(response == HttpURLConnection.HTTP_OK) {
                InputStream stream = conn.getInputStream();
                return dealResponseResult(stream);

            }else{
                Log.d(TAG,"<<<<<response="+response);
                return null;
            }
        }catch (IOException ex) {
            ex.printStackTrace();
        }

        return null;
    }



    public static String post(final String strUrl, String params) {

        try {
            URL url = new URL(strUrl);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setReadTimeout(5000);
            conn.setRequestMethod("POST");

            //设置请求体的类型是文本类型
            conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

            //设置请求体的长度
            conn.setRequestProperty("Content-Length",String.valueOf(params.getBytes().length));

            //获得一个输出流,向服务器写入数据
            OutputStream outputStream = conn.getOutputStream();
            outputStream.write(params.getBytes());

            int response = conn.getResponseCode();
            if(response == HttpURLConnection.HTTP_OK) {
                InputStream stream = conn.getInputStream();
                return dealResponseResult(stream);

            }else{
                Log.d(TAG,"<<<<<response="+response);
                return null;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }


    public static String put(final String strUrl, String params) {
        try{
            URL url = new URL(strUrl);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setReadTimeout(5000);
            conn.setRequestMethod("PUT");

            //获得一个输出流,向服务器写入数据
            OutputStream outputStream = conn.getOutputStream();
            outputStream.write(params.getBytes());

            int response = conn.getResponseCode();
            if(response == HttpURLConnection.HTTP_OK) {
                InputStream stream = conn.getInputStream();
                return dealResponseResult(stream);

            }else{
                Log.d(TAG,"<<<<<response="+response);
                return null;
            }
        }catch (IOException ex) {
            ex.printStackTrace();
        }

        return null;
    }

    private static String dealResponseResult(InputStream stream) throws IOException{
        StringBuffer buffer = new StringBuffer();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream));
        String str = null;
        while ((str = bufferedReader.readLine()) != null) {
            buffer.append(str);
        }
        return buffer.toString();
    }


}

Http的操作可以分以下几部:

对于get请求可以分以下几部:

  1. 创建URL

  2. 生成httpURLConnection

  3. 设置read timeout

  4. 设置那个request method

  5. 获取response code

  6. 获取服务器的inputStream


对于post,delete,put请求可以分以下几部:

  1. 创建URL

  2. 生成httpURLConnection

  3. 设置read timeout

  4. 设置那个request method

  5. 用outputStream往服务器上写数据

  6. 获取response code

  7. 获取服务器的inputStream


1人推荐
随时随地看视频
慕课网APP