今天的内容是这几天中比较重要的一部分.作为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...
Android中使用HttpURLConnection和HttpClient实现GET和POST请求访问网络
GETimport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.Malformed
传智播客风清扬视频-------网络编程简介
计算机网络模型 OSI(Open System Interconnection开放系统互连)参考模型 TCP/IP参考模型 OSI 应用层--表示层--会话层--传输层--网络层--数据链路层--物理层 TCP/IP 应用层----------------传输层--网络层--主机至网络层 网络模型7层概述: 1.物理层:主要定义物理设备...
扒一扒传智播客深藏在背后的内幕
扒一扒传智播客深藏在背后的内幕 —— 传智坚持开Java基础班有何猫腻 Java基础太简单,自学一个月就能搞定?大学学了计算机基础的,感觉报基础班有点浪费钱,浪费时间!找工作会项目都行了,基础班感觉没多大用处……这
前端跨域完全指南:从原理到实战(WebSocket)
本文系统梳理前端跨域问题与常见解决方案,包括 Nginx 反向代理、CORS、SSE、JSONP、postMessage 等,并重点通过实战代码讲解 WebSocket 双工通信的连接过程与适用场景。
Natapp 内网穿透完整实操:从注册到远程桌面公网访问全流程
内网穿透并不缺方案。自己搭建 FRP 的自由度很高,但要先有一台带公网 IP 的服务器,再部署服务端、配置客户端、开放端口,后续还要处理升级、安全和日常维护。如果只是想尽快把本地网页、远程桌面或者其他服务接到公网,这些准备工作很容易把人挡在第一步。我用 Natapp 一段时间后,最直观的感受就是省事:不用准备公网服务器,也不用维护一套服务端。注册账号、创建隧道、下载,再用authtoken启动,公网入口就有了。
▲网络原理(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字节。
Windows端口转发
Windows端口转发
汽车电子ISO 26262功能安全系列(第39期):ISO 26262第三版前瞻——AI、SOTIF与网络安全的三标融合时代
第三版对AI的态度是——
开源 lwIP:单片机上的轻量 TCP/IP 协议栈
我们要的是 Linux 那套完整网络世界,还是一份能塞进 MCU 的、可裁剪的 TCP/IP?lwIP 把路走窄了,也走实了:窄在不做通用 OS 网络子系统;实在无数量产固件里默默转发每一包。它不靠刷星证明自己,靠的是——你打开厂商工程时,头文件里已经写着lwip。厂商/官方 echo 例程 → 读懂lwipopts.h→ ping 通 → 一条 TCP/UDP → 再叠 MQTT/HTTP。别第一天就对吞吐和 TLS 一起开战——先让协议栈在板上「活着」。
网络安全与人工智能:进展、挑战、机遇与威胁!
“网络安全 × 人工智能”本质上是一个双重命题:AI 既是防御武器,也是攻击工具,还是被攻击目标。2025–2026 年的共识已经很明确——AI 没有取代安全,而是重写了攻防的速度、规模和边界。AI 让攻击更便宜、更准、更隐蔽;也让防御更快、更广、更自动。但真正决定胜负的,不是“谁有大模型”,而是谁先把 AI 当成关键基础设施来治理。
GPU视频分析问题清单:环境、参数、验证和排错
本文为仓储物流园区车流量统计与通道拥堵分析提供标准化GPU视频分析平台部署指南,涵盖装卸区、货架区、叉车通道等核心场景。基于“算力与解复用分离”架构,明确硬件配置(如RTX4090/A10、16GB显存)、关键参数(ROI、callback_url)及六阶段交付流程,重点解决RTSP断流、计数误报、延迟高等问题,并提出硬件解码、抽帧优化、TensorRT量化等性能提升策略,确保实时性与低延迟,助力高效运维。
Modbus协议解析
Modbus 采用一主多从通信模式,基于 RS-485 总线实现单主问答机制,从机仅在被主机点名后响应,避免信号碰撞。为支持多主机场景,可使用硬件网关或切换至 Modbus TCP。RTU 帧依赖 $t_{3.5}$/ $t_{1.5}$ 时序界定帧边界,功能码如 0x03(读保持寄存器)、0x10(写多寄存器)广泛用于工业控制,数据按大端序传输,CRC16 校验保障可靠性。
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
深入剖析 WebRTC 在网络代理环境下通过 STUN/TURN/ICE 协议穿透 NAT 导致本地真实物理 IP 泄漏的底层成因,并使用原生 Python 实现 RFC 5389 二进制报文解析与穿透风险自动化检测。
SD-WAN网络可视化实践:如何让IT部门从救火队变成决策者?
网络可视化破解IT运维困局,将“黑盒”网络变为可监控、可管理的透明体系。通过端到端链路监控、应用级流量识别与智能告警,企业实现故障精准定位、资源科学分配与数据驱动决策。从被动救火到主动预警,从经验判断到智能优化,IT角色由“成本中心”转向“业务支撑者”。尤其对多分支企业,可视化结合SD-WAN技术,降低运维门槛,提升网络效率,正成为现代网络运维的标准配置。
Docker Desktop(WSL2 后端)三层网络互通技术文档
本文档针对的运行模式,结合实际环境IP地址,完整解析容器、WSL2虚拟机、Windows主机三层网络的组成结构、互通机制与全量流量路径,明确两块Hyper-V虚拟网卡的角色分工。
PPTP和L2TP哪个更安全?老旧协议选择建议
在网络通信与数据传输安全评估中,。PPTP依赖的MS-CHAP v2身份验证机制与128位RC4流加密算法已被现代密码学证实存在严重逻辑缺陷,容易遭受离线字典攻击与密钥解密;而L2TP通过与IPsec协议紧密结合,采用高强度AES对称加密算法、SHA数据完整性校验以及双向证书认证,具备完善的机密性与防篡改能力,整体防护等级远超PPTP。
346




被折叠的 条评论
为什么被折叠?



