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. [oeasy]python0082_VT100_演化_颜色设置_VT选项_基础色_高亮色_索引色_RGB总结

    更多颜色 回忆上次内容 上次 了解了控制序列 背后的故事 一切标准 都是 从无到有 的 就连 负责标准的组织 也是 从无到有 的 VT-05 奠定了 基础颜色 黑底 绿字 隔行 扫描 但 多颜色设置 ...

  2. C# 开发技巧 轻松监控方法执行耗时

    前言 MethodTimer.Fody 是一个功能强大的库,可以用于测量 .NET 应用程序中的方法的执行时间.允许你在不修改代码的情况下,自动地测量和记录方法的执行时间. 这个工具是基于.NET的 ...

  3. 【WebSocket】一个简单的前后端交互Demo

    WebSocket资料参考: https://www.jianshu.com/p/d79bf8174196 使用SpringBoot整合参考: https://blog.csdn.net/KeepSt ...

  4. 【Vue】Re11 Vue 与 Webpack

    一.案例环境前置准备: 创建一个空目录用于案例演示 mkdir vue-sample 初始化案例和安装webpack cd vue-sample npm install webpack@3.6.0 - ...

  5. 【转载】 固定随机种子比较强化学习算法——pytorch框架

    原文地址: https://www.cnblogs.com/lucifer1997/p/13801102.html ========================================== ...

  6. 算法·理论:Manacher 笔记

    \(\text{Manacher}\) 来啦! \(\text{Manacher}\) 并没有什么前置知识,比 \(\text{KMP}\) 简单多了. 前置处理 \(\text{Manacher}\ ...

  7. JNA使用入门

    JNA即Java Native Access. 官方主页 代码仓库 官方样例 maven中心仓库主页 官方文档 Getting Started Functional Description. Mapp ...

  8. OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!

    自从OpenHarmony更新了dev-tool,就可以在windows下构建鸿蒙(轻量型)系统了,这对于进行MCU开发的朋友们,学习鸿蒙OS会友好许多!我们可以更快的构建出系统,方便快速学习和验证. ...

  9. Linux内核及补丁编译

    Linux内核及补丁编译 一.源码下载 1.查看当前linux内核版本 uname -r 2.获取对应版本的linux源码 方式1:源方式下载 sudo apt search linux-source ...

  10. 一键k8s企业级集群部署(以k8s的1.18.0版本为例)

    一.下载安装sealos wget https://github.com/fanux/sealos/releases/download/v3.2.0-beta.2/sealos && ...