传智播客--3G开发之利用HttpURLConnection对象和Internet交互(非常重要)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

今天的内容是这几天中比较重要的一部分.作为3G的应用程序开发中,和网络的通信自然是必须的.熟练的使用Android和Internet到交到,这在 我们今后的工作中是重中之中.我们今天的内容就要学习,从Internet获取数据,怎么向Internet发送请求参数和向Internet发送xml 数据.这些都是和WEB程序通信的基本手段.努力学习吧.同学们,现在都有找到工作的出去干活的了,我不免有些着急.

1.从Internet获取网页
发 送请求,将网页以流的形式读回来.
1)创建一个URL对象:URL url = new URL("http://www.sohu.com");
2)利用HttpURLConnection对象从网络中获取网页数 据:HttpURLConnection conn = (HttpURLConnection) url.openConnection();
3) 设置连接超时:conn.setConnectTimeout(6* 1000);
4)对响应码进行判断:if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
5) 得到网络返回的输入流:InputStream is = conn.getInputStream();
6)String result = readData(is, "GBK");
conn.disconnect();
总结:
--我们必须要记得设置连接超时,如果网络不好,Android系统在超过默认时间会收 回资源中断操作.
--返回的响应码200,是成功.
--利用ByteArrayOutputStream类,将得到的输入流写入内存.
-- 在Android中对文件流的操作和JAVA SE上面是一样的.

2.从Internet获取文件
利用HttpURLConnection对象, 我们可以从网络中获取文件数据.
1)创建URL对象,并将文件路径传入:URL url = new URL("http://photocdn.sohu.com/20100125/Img269812337.jpg");
2)创建 HttpURLConnection对象,从网络中获取文件数据:HttpURLConnection conn = (HttpURLConnection) url.openConnection();
3)设置连接超 时:conn.setConnectTimeout(6* 1000);
4)对响应码进行判断:if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
5) 得到网络返回的输入流:InputStream is = conn.getInputStream();
6)将得到的文件流写 出:outStream.write(buffer, 0, len);
总结:
--在对大文件的操作时,要将文件写到SDCard上面,不要直接写到手机内存上.
--操作大文件是,要 一遍从网络上读,一遍要往SDCard上面写,减少手机内存的使用.这点很重要,面试经常会被问到.
--对文件流操作完,要记得及时关闭.

3.向Internet发送请求参数
1) 将地址和参数存到byte数组中:byte[] data = params.toString().getBytes();
2)创建 URL对象:URL realUrl = new URL(requestUrl);
3)通过HttpURLConnection对象,向网络地 址发送请求:HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
4)设置容许输出:conn.setDoOutput(true);
5)设置不使用 缓存:conn.setUseCaches(false);
6)设置使用POST的方式发 送:conn.setRequestMethod("POST");           
7)设置维持长连 接:conn.setRequestProperty("Connection", "Keep-Alive");
8)设置文件字符 集:conn.setRequestProperty("Charset", "UTF-8");
9)设置文件长 度:conn.setRequestProperty("Content-Length", String.valueOf(data.length));
10) 设置文件类型:conn.setRequestProperty("Content-Type","application/x-www-form- urlencoded");
11)以流的方式输出.
总结:
-- 发送POST请求必须设置允许输出
--不要使用缓存,容易出现问题.
--在开始用HttpURLConnection对象的 setRequestProperty()设置,就是生成HTML文件头.

4.向Internet发送xml数据
XML格式是通信的标准语言,Android系统也可以通过发送XML文件 传输数据.
1)将生成的XML文件写入到byte数组中,并设置为UTF-8:byte[] xmlbyte = xml.toString().getBytes("UTF-8");
2)创建URL对象,并指定地址和参数:URL url = new URL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");
3) 获得链接:HttpURLConnection conn = (HttpURLConnection) url.openConnection();
4) 设置连接超时:conn.setConnectTimeout(6* 1000);
5)设置允许输出 conn.setDoOutput(true);
6)设置不使用缓存:conn.setUseCaches(false);
7)设置以 POST方式传输:conn.setRequestMethod("POST");           
8)维持长连 接:conn.setRequestProperty("Connection", "Keep-Alive");
9)设置字符 集:conn.setRequestProperty("Charset", "UTF-8");
10)设置文件的总长 度:conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));
11)设置文件类 型:conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
12) 以文件流的方式发送xml数据:outStream.write(xmlbyte);
总结:
--我们使用的是用HTML的方式传输文件,这个方式只能传输一般在5M一下的文件.
--传输大 文件不适合用HTML的方式,传输大文件我们要面向Socket编程.确保程序的稳定性.

传智播客学习网络营销,竟然还可以拿实战奖金!!! 传智播客是唯一一家通过网络营销带来主要生源的培训机构,不像其他一些机构通过大量市场人员进行地面招生,正因为这样,他们积累了比其他机构更加丰富的网络营销实战经验,这些经验都贯穿于他们的课程中。 因此选择传智播客学习网络营销课程,不仅能学习掌握网络营销实战技能经验,同时也有大量随着课程进度进行实践推广赚取兼职收入的机会。 通过项目实战奖金制度,一方面能提高在读学员完成作业的积极性、巩固课堂所学 阅读详情

相关推荐

网络通信

如果两台电脑之间通过网线连接是可以直接通信的,但是需要提前设置好ip地址以及网络掩码并且ip地址需要控制在同一网段内,例如 一台为192.168.1.1另一台为192.168.1.2则可以进行通信集线器:当有多态电脑需要组成一个网时,那么可以通过集线器(Hub)将其链接在一起一般情况下集线器的接口较少集线器有个缺点,它以广播的方式进行发送任何数据,即如果集线器接收到来自A电脑的数据本来是想转发给B...

xx6345386的博客 346

Android中使用HttpURLConnectionHttpClient实现GETPOST请求访问网络

GETimport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.Malformed

徐刘根的博客 4726

传智播客风清扬视频-------网络编程简介

计算机网络模型 OSI(Open System Interconnection开放系统互连)参考模型 TCP/IP参考模型 OSI 应用层--表示层--会话层--传输层--网络--数据链路层--物理层 TCP/IP 应用层----------------传输层--网络--主机至网络网络模型7层概述: 1.物理层:主要定义物理设备...

iteye_9921的博客 597

扒一扒传智播客深藏在背后的内幕

扒一扒传智播客深藏在背后的内幕  —— 传智坚持开Java基础班有何猫腻           Java基础太简单,自学一个月就能搞定?大学学了计算机基础的,感觉报基础班有点浪费钱,浪费时间!找工作会项目都行了,基础班感觉没多大用处……这

黑马程序员官方博客 3万+

前端跨域完全指南:从原理到实战(WebSocket)

本文系统梳理前端跨域问题与常见解决方案,包括 Nginx 反向代理、CORS、SSE、JSONP、postMessage 等,并重点通过实战代码讲解 WebSocket 双工通信的连接过程与适用场景。

2503_93701293的博客 72

Natapp 内网穿透完整实操:从注册到远程桌面公网访问全流程

内网穿透并不缺方案。自己搭建 FRP 的自由度很高,但要先有一台带公网 IP 的服务器,再部署服务端、配置客户端、开放端口,后续还要处理升级、安全日常维护。如果只是想尽快把本地网页、远程桌面或者其他服务接到公网,这些准备工作很容易把人挡在第一步。我用 Natapp 一段时间后,最直观的感受就是省事:不用准备公网服务器,也不用维护一套服务端。注册账号、创建隧道、下载,再用authtoken启动,公网入口就有了。

2301_80863610的博客 1万+

网络原理(2)-TCP

头部就是上图除了数据以外的其余部分。基础长度:16+16+32+32+4+6+6+16+16+16=160bit=20byte4位首部长度,有无选项4bit,表示范围0~15,数据单位是4byte,意思是这个字段里写的数字x4=TCP头部粽子节数。最小数字是5取值为5——》5x4=20字节,没有选项,基础头部取值为6——》6x4=24字节,原来20字节的基础上,选项部分增加4字节取值为15——》15x4=60字节,原来20字节的基础上,选项部分增加40字节。

captain376的博客 214

Windows端口转发

Windows端口转发

我要成为Java糕手 188

汽车电子ISO 26262功能安全系列(第39期):ISO 26262第三版前瞻——AI、SOTIF与网络安全的三标融合时代

第三版对AI的态度是——

luiyarch的博客 301

开源 lwIP:单片机上的轻量 TCP/IP 协议栈

我们要的是 Linux 那套完整网络世界,还是一份能塞进 MCU 的、可裁剪的 TCP/IP?lwIP 把路走窄了,也走实了:窄在不做通用 OS 网络子系统;实在无数量产固件里默默转发每一包。它不靠刷星证明自己,靠的是——你打开厂商工程时,头文件里已经写着lwip。厂商/官方 echo 例程 → 读懂lwipopts.h→ ping 通 → 一条 TCP/UDP → 再叠 MQTT/HTTP。别第一天就对吞吐 TLS 一起开战——先让协议栈在板上「活着」。

buhuidage的博客 197

网络安全与人工智能:进展、挑战、机遇与威胁!

网络安全 × 人工智能”本质上是一个双重命题:AI 既是防御武器,也是攻击工具,还是被攻击目标。2025–2026 年的共识已经很明确——AI 没有取代安全,而是重写了攻防的速度、规模边界。AI 让攻击更便宜、更准、更隐蔽;也让防御更快、更广、更自动。但真正决定胜负的,不是“谁有大模型”,而是谁先把 AI 当成关键基础设施来治理。

m0_65595995的博客 266

GPU视频分析问题清单:环境、参数、验证排错

本文为仓储物流园区车流量统计与通道拥堵分析提供标准化GPU视频分析平台部署指南,涵盖装卸区、货架区、叉车通道等核心场景。基于“算力与解复用分离”架构,明确硬件配置(如RTX4090/A10、16GB显存)、关键参数(ROI、callback_url)及六阶段交付流程,重点解决RTSP断流、计数误报、延迟高等问题,并提出硬件解码、抽帧优化、TensorRT量化等性能提升策略,确保实时性与低延迟,助力高效运维。

tt120326的博客 213

Modbus协议解析

Modbus 采用一主多从通信模式,基于 RS-485 总线实现单主问答机制,从机仅在被主机点名后响应,避免信号碰撞。为支持多主机场景,可使用硬件网关或切换至 Modbus TCP。RTU 帧依赖 $t_{3.5}$/ $t_{1.5}$ 时序界定帧边界,功能码如 0x03(读保持寄存器)、0x10(写多寄存器)广泛用于工业控制,数据按大端序传输,CRC16 校验保障可靠性。

Jackson_GJH‘s blog 231

网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战

深入剖析 WebRTC 在网络代理环境下通过 STUN/TURN/ICE 协议穿透 NAT 导致本地真实物理 IP 泄漏的底层成因,并使用原生 Python 实现 RFC 5389 二进制报文解析与穿透风险自动化检测。

etsyZS的博客 217

SD-WAN网络可视化实践:如何让IT部门从救火队变成决策者?

网络可视化破解IT运维困局,将“黑盒”网络变为可监控、可管理的透明体系。通过端到端链路监控、应用级流量识别与智能告警,企业实现故障精准定位、资源科学分配与数据驱动决策。从被动救火到主动预警,从经验判断到智能优化,IT角色由“成本中心”转向“业务支撑者”。尤其对多分支企业,可视化结合SD-WAN技术,降低运维门槛,提升网络效率,正成为现代网络运维的标准配置。

OgCloud_ICT的博客 230

Docker Desktop(WSL2 后端)三层网络互通技术文档

本文档针对的运行模式,结合实际环境IP地址,完整解析容器、WSL2虚拟机、Windows主机三层网络的组成结构、互通机制与全量流量路径,明确两块Hyper-V虚拟网卡的角色分工。

binqian的专栏 214

PPTPL2TP哪个更安全?老旧协议选择建议

网络通信与数据传输安全评估中,。PPTP依赖的MS-CHAP v2身份验证机制与128位RC4流加密算法已被现代密码学证实存在严重逻辑缺陷,容易遭受离线字典攻击与密钥解密;而L2TP通过与IPsec协议紧密结合,采用高强度AES对称加密算法、SHA数据完整性校验以及双向证书认证,具备完善的机密性与防篡改能力,整体防护等级远超PPTP。

Loongproxy的博客 226
上一篇: 传智播客--ContentProvider共享数据和ContentResolver的使用,Uri,UriMatcher和ContentUris
下一篇: 传智播客--3G开发之添加多Activity和数据传递,Activity生命周期,广播,服务
getclass
博客等级 码龄18年 53粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值