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使用的更多相关文章

  1. Android入门(二十)HttpURLConnection与HttpClient

    原文链接:http://www.orlion.ga/679/ 在 Android上发送 HTTP请求的方式一般有两种,HttpURLConnection和 HttpClient. 一.HttpURLC ...

  2. Android HttpURLConnection And HttpClient

    Google的工程师的一个博客写到: HttpURLConnection和HttpClient Volley HTTP请求时:在Android 2.3及以上版本,使用的是HttpURLConnecti ...

  3. android中的HttpURLConnection和HttpClient实现app与pc数据交互

    自学android的这几天很辛苦,但是很满足,因为每当学到一点点知识点都会觉得很开心,觉得今天是特别有意义的,可能这个就是一种莫名的热爱吧. 下面来说说今天学习的HttpURLConnection和H ...

  4. android 网络编程之HttpURLConnection与HttpClient使用与封装

    1.写在前面     大部分andriod应用需要与服务器进行数据交互,HTTP.FTP.SMTP或者是直接基于SOCKET编程都可以进行数据交互,但是HTTP必然是使用最广泛的协议.     本文并 ...

  5. 转-Android联网 — HttpURLConnection和HttpClient选择哪个好?

    http://www.ituring.com.cn/article/199619?utm_source=tuicool 在Android开发中,访问网络我们是选择HttpURLConnection还是 ...

  6. HttpURLConnection和HttpClient

    HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中已经提供了访问 ...

  7. [转]Android访问网络,使用HttpURLConnection还是HttpClient

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12452307 最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有 ...

  8. 关于安卓HTTP请求用HttpUrlConnection还是HttpClient好

    安卓和JAVA应用开发少不了要提交HTTP请求,而基本上目前有两个实现方式:HttpUrlConnection(即URL.openConnection)和HttpClient. 网上不少人都认为Htt ...

  9. Android HTTP请求用HttpUrlConnection与HttpClient比较

    在安卓和JAVA应用开发中需要访问网络,少不了要提交HTTP请求,而基本上目前有两个实现方式:HttpUrlConnection(即URL.openConnection)和HttpClient. 网上 ...

  10. HttpURLConnection与HttpClient浅析

    转自:https://blog.csdn.net/u012838207/article/details/82867701 HttpURLConnection与HttpClient浅析 1. GET请求 ...

随机推荐

  1. 嘿,我使用了mp的自连接+分页查询之后,再使用条件查询居然失效了。

    原因:我想通过自连接查询将一个表的两条数据放在一起,为此我重写了mp的分页查询 IPage<Indi> selectIndiShow(IPage<Indi> page, @Pa ...

  2. 题解 CF653F Paper task

    CF653F Paper task 给定一个长度为 \(n\) 和括号串,求本质不同的合法括号串个数.\(n\le 5\times 10^5\). 考虑如果不是求本质不同,可以想到 DP. 设 \(f ...

  3. Meta公司的Llama3大语言模型

    Github地址: https://github.com/meta-llama/llama3 官方介绍: https://ai.meta.com/blog/meta-llama-3/ 官方项目主页: ...

  4. 计算机网络中的Ad hoc network到底是个啥?

    "Ad hoc network" 是一种临时网络,通常指由一组设备(如计算机.手机等)通过无线方式相互连接而不需要依赖固定的基础设施(如路由器或交换机).这些网络通常是自组织的,能 ...

  5. 普通用户权限运行docker

    docker安装后默认权限是管理员,在Ubuntu系统中需要使用sudo命令,但是很多时候docker的拉取操作都是写在脚步里面的,因此执行的时候十分的难搞,如果给脚本sudo权限后那么整个的环境路径 ...

  6. 【转载】PCT体系与传统专利体系的比较——不同国际专利申请途径的区别

    原文地址: 国家知识产权局 基础知识 PCT体系与传统专利体系的比较 (cnipa.gov.cn) ======================================= 专利合作条约(PAT ...

  7. Java RMI技术详解与案例分析

    Java RMI(Remote Method Invocation)是一种允许Java虚拟机之间进行通信和交互的技术.它使得远程Java对象能够像本地对象一样被访问和操作,从而简化了分布式应用程序的开 ...

  8. 这应该是全网最全的CSP-S初赛复习吧

    点我到洛谷看 \(Update\ 2024/8/2:\) 加入了在数据结构中增加了"树",做出部分更改. linux基础命令 cd 切换目录 ls 列出目前工作目录所含的文件及子目 ...

  9. Canvas简历编辑器-图形绘制与状态管理(轻量级DOM)

    Canvas简历编辑器-图形绘制与状态管理(轻量级DOM) 在前边我们聊了数据结构的设计和剪贴板的数据操作,那么这些操作都还是比较倾向于数据相关的操作,那么我们现在就来聊聊基本的图形绘制以及图形状态管 ...

  10. Apache SeaTunnel 4月回顾:明星贡献者与技术突破

    各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 4 月份月报来啦!这里将记录 SeaTunnel 社区每月的重要更新,欢迎关注! 月度 Merge 之星 感谢以下小伙伴 4 月为 ...