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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
HttpURLConnection和HttpClient使用的更多相关文章
- Android入门(二十)HttpURLConnection与HttpClient
		原文链接:http://www.orlion.ga/679/ 在 Android上发送 HTTP请求的方式一般有两种,HttpURLConnection和 HttpClient. 一.HttpURLC ... 
- Android HttpURLConnection And HttpClient
		Google的工程师的一个博客写到: HttpURLConnection和HttpClient Volley HTTP请求时:在Android 2.3及以上版本,使用的是HttpURLConnecti ... 
- android中的HttpURLConnection和HttpClient实现app与pc数据交互
		自学android的这几天很辛苦,但是很满足,因为每当学到一点点知识点都会觉得很开心,觉得今天是特别有意义的,可能这个就是一种莫名的热爱吧. 下面来说说今天学习的HttpURLConnection和H ... 
- android 网络编程之HttpURLConnection与HttpClient使用与封装
		1.写在前面 大部分andriod应用需要与服务器进行数据交互,HTTP.FTP.SMTP或者是直接基于SOCKET编程都可以进行数据交互,但是HTTP必然是使用最广泛的协议. 本文并 ... 
- 转-Android联网 — HttpURLConnection和HttpClient选择哪个好?
		http://www.ituring.com.cn/article/199619?utm_source=tuicool 在Android开发中,访问网络我们是选择HttpURLConnection还是 ... 
- HttpURLConnection和HttpClient
		HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中已经提供了访问 ... 
- [转]Android访问网络,使用HttpURLConnection还是HttpClient
		转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12452307 最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有 ... 
- 关于安卓HTTP请求用HttpUrlConnection还是HttpClient好
		安卓和JAVA应用开发少不了要提交HTTP请求,而基本上目前有两个实现方式:HttpUrlConnection(即URL.openConnection)和HttpClient. 网上不少人都认为Htt ... 
- Android HTTP请求用HttpUrlConnection与HttpClient比较
		在安卓和JAVA应用开发中需要访问网络,少不了要提交HTTP请求,而基本上目前有两个实现方式:HttpUrlConnection(即URL.openConnection)和HttpClient. 网上 ... 
- HttpURLConnection与HttpClient浅析
		转自:https://blog.csdn.net/u012838207/article/details/82867701 HttpURLConnection与HttpClient浅析 1. GET请求 ... 
随机推荐
- Python 正则表达式实战之Java日志解析
			需求描述 基于生产监控告警需求,需要对Java日志进行解析,提取相关信息,作为告警通知消息的内容部分. 提取思路 具体怎么提取,提取哪些内容呢?这里笔者分析了大量不同形态的生产日志,最后总结出4种形态 ... 
- Kafka kafka在windows下的安装与配置
			kafka在windows下的安装与配置 By: 授客 QQ:1033553122 1.测试环境.............................................. ... 
- 暑假java自学进度总结03
			一.今日所学: 1.标识符命名规则: 必须: 1>由数字,字母,下划线,美元符组成: 2>不能以数字开头: 3>不能是关键字: 4>区分大小写: 建议: 1>命名方法,变 ... 
- (二)MongoDB的在SpringBoot中的应用
			我来填之前MongoDB的坑了,项目中又用到MongoDB的我又想起来了,我这拖延症也是没谁了. 1.在pom.xml中引入依赖 <dependency> <groupId>o ... 
- 7月24号python:库存管理
			7月24号python:库存管理 题目:  仓库管理员以数组 stock 形式记录商品库存表.stock[i] 表示商品 id,可能存在重复.原库存表按商品 id 升序排列.现因突发情况需要进行商品 ... 
- 【MySQL】全库调整表大小写语句
			统一修改字段成小写+下划线的命名规则: V1上线后,重新看SQL调整的较可行的写法: # = = = = = = = = = = = = = = = 统一更改全库所有字段大小写脚本SQL(会删除字段原 ... 
- 【Kafka】01 基于Docker环境的单例Kafka搭建
			安装参考: https://www.cnblogs.com/vipsoft/p/13233045.html 环境安装需要 Zookeeper + Kafka 要学习Kafka还需要繁琐的安装配置,所以 ... 
- 【Project】原生JavaWeb工程 01 概述,搭建
			一.环境准备: 操作系统:Windows7 或者 Windows10 IDE集成环境:IDEA 2018版本或者更高 数据库:MySQL 5版本或者更高 服务器:Tomcat 8版本或者更高 二.数据 ... 
- 【转载】    CV往哪卷?李飞飞指出三颗「北极星」:具身智能,视觉推理和场景理解
			原文地址: https://news.cnblogs.com/n/720105/ 新智元报道 编辑:LRS ============================================== ... 
- 为python编译C++模块时一定要注意的事情—————不要在anaconda环境下使用cmake来编译C++扩展模块!!!
			平时搞python的人很多都会有安装C++扩展模块的需求,而往往这些C++模块都是使用CMAKE做编译配置的,但是如果你这时候shell环境是使用anaconda的话,那么cmake默认调用的GCC和 ... 
