• HttpURLConnection和HttpClient使用


    HttpURLConnection

    这是Java的标准类,继承自URLConnection,可用于向指定网站发送GET/POST请求。

    方法描述

    void setRequestMethod(String method)
    设置请求的方法,注意参数必须全大写;

    void setFollowRedirects(boolean set)
    设置是否自动重定向,默认是true;

    void setRequestProperty(String key, String value)
    设置请求的header;

    使用步骤

    第一步 使用java.net.URL封装HTTP资源的url,并使用openConnection方法获得HttpURLConnection对象;
    第二步 设置请求方法,setRequestMethod("POST");
    第三步 设置输入输出和其它权限;
    第四步 设置http请求头,setRequestProperty("Charset", 'UTF-8");
    第五步 输入和输出数据;对InputStream和OutputStream的读写操作。
    第六步 关闭输入和输出流。

    示例代码如下:

        private void sendPost() {
            HttpURLConnection connection = null;
            BufferedWriter writer = null;
            try {
                URL url = new URL("http", "www.baidu.com", 80, "/");
                connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setDoOutput(false);
                connection.setDoInput(true);
                connection.setRequestProperty("Connection", "Keep-Alive");
                connection.setRequestProperty("Charset", "UTF-8");
                OutputStream os = connection.getOutputStream();
                writer = new BufferedWriter(new OutputStreamWriter(os));
                writer.write("user=chen&pass=ya");
                writer.flush();
                connection.connect();
    
                if (connection.getResponseCode() == 200) {
                      recv(connection.getInputStream());
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (writer != null) {
                        writer.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
                if (connection != null) {
                    connection.disconnect();
                }
            }
        }
    
        private void recv(@NonNull InputStream is) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            try {
                String content;
                while ((content = reader.readLine()) != null) {
                    System.out.println("recv: " + content);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    

    HttpClient

    是Apache包的一个Http请求库,封装了很多功能(如:cookie管理),Android 5.0开始已经将此库移除了sdk。



    作者:Charein
    链接:https://www.jianshu.com/p/93518011e4c3
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Java实现邮箱找回密码
    使用Java程序发送Email
    SSH返回Json格式的数据
    destoon二次开发基础指南
    揭秘:中国企业家十大顶级圈子
    Windows环境下完全手工配置Apache、MySQL和PHP
    windowns 查看端口占用
    MySQL主从同步机制及同步中的问题处理
    Apache Rewrite 规则详解
    PHP输出当前进程所有变量 / 常量 / 模块 / 函数 / 类
  • 原文地址:https://www.cnblogs.com/xuqiang7/p/11773830.html
Copyright © 2020-2023  润新知