【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(一)

简介: 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介(一)

Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常;


-- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常);


-- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1异常), android.net.wifi 包 (16类, 1枚举), android.net.wifi.p2p 包 (9接口, 7类), android.net.wifi.p2p.nsd 包 (6类);






一. 权限相关类



1. Authenticator



类的全名称 :


public abstract class Authenticator extends Object

-- 作用 : 获取网络链接验证对象;


-- 使用方法 : 当需要获取一个带 口令 保护的文件的时候, 需要使用 用户名 和 密码 才能获取该文件的输入流, 如果遇到这种情况, 提示用户输入用户名 密码获取文件;




使用流程

1> 获取用户名密码

关键方法 :



protected PasswordAuthentication getPasswordAuthentication()

-- 重写方法 : 重写该方法, 在该方法中调用 该类中的其它方法, 获取关于请求验证的信息;

-- 用户输入 : 然后写一个 用户名密码输入框, 弹出该输入框, 通过用户输入获取用户名密码;


-- 返回结果 : 根据用户输入的 口令 密码 以及上面获取的请求验证信息, 返回 PasswordAuthentication 对象;




2> 验证


验证流程 :

-- 注册验证类实例 : 调用 setDefault(Authenticator) 方法向系统注册实例;

-- 验证 : 调用 requestPasswordAuthentication()方法;



public static void setDefault(Authenticator a)

-- 作用 : 设置 代理 或者 HTTP服务器 请求校验时 密码使用的 authenticator;




public static PasswordAuthentication requestPasswordAuthentication(InetAddress addr,
            int port,
            String protocol,
            String prompt,
            String scheme)

-- 作用 : 要求向系统注册的 authemticator 提供密码;

-- 参数 : addr 请求授权站点的 InetAddress, port 请求链接端口, protocol 请求连接的协议, prompt 用户提示的字符串, scheme 验证方案;






2. PasswordAuthentication



类的全名称 :


public final class PasswordAuthentication extends Object

-- 作用 : 该类保存 Authenticator 使用的 用户名 和 密码;



构造方法 :



public PasswordAuthentication(String userName, char[] password)

-- 用法 : 根据传入的用户名 和 密码创建 PasswordAuthentication 对象;



获取用用户名密码的方法 :


-- 获取用户名方法 : public String getUserName() ;


-- 获取密码方法 : public char[] getPassword() ;






3. NetPermission



类的全名称 :



public final class NetPermission extends BasicPermission

-- 作用 : 用于各种网络权限, 包含一个名称, 没有动作列表;



权限解析 : 每个权限都有一个权限名称, 所允许的操作, 以及对应的风险;


-- setDefaultAuthenticator : 设置代理 或 HTTP 服务器请求验证, 获取验证信息的方式;


-- requestPasswordAuthentication : 设置 在系统中注册的 authenticator 可以提供密码;


-- specifyStreamHandler : 构造 URL 时指定流处理程序;


-- setProxySelector : 设置 建立网络连接时使用代理的 代理选择器;


-- getProxySelector : 获取 建立网络连接时使用代理的 代理选择器;


-- setCookieHandler : 设置 HTTP会话处理高度安全敏感的cookie 的 cookie 处理程序;


-- getCookieHandler : 获取 HTTP会话处理高度安全敏感的cookie 的 cookie 处理程序;


-- setResponseCache : 设置 本地响应缓存的访问权限;


-- getResponseCache : 获取 本地响应缓存的访问权限;


.






二. 地址相关类



1. InetAddress



类的全名称 :


public class InetAddress extends Object implements Serializable


作用 : 代表 IP 地址;


IP地址层级 : IP地址是一种低级的协议, UDP 和 TCP 都是在这个协议的基础上构建;




IP地址类型 :


-- 单播地址 : 用于当作单个接口标识符, 发送到单播地址的数据包 被发送到 由该地址标识的接口;


-- 多播地址 : 用于当作一组接口的标识符, 发送到多播地址的数据包被交付给由地址标识的所有接口;


-- 回送地址 : 分配给回送接口的地址, 发送到回送地址的任何内容, 都将当作本地主机的IP输入, 通常在测试客户机的时候使用这种类型的地址;




多播地址的注意事项 : 不能将多播地址分配给任何节点, 它是 anylocal 地址 或者 通配符地址, 服务器主机有多个接口的情况下接收任何接口上的客户端链接;




IP地址范围 :


-- 链接本地地址 : 在单个链接上寻址, 以解决诸如自动地址配置, 邻居发现, 或者没有路由器的问题;


-- 站点本地地址 : 不许要全局前缀时, 站点内部寻址;


-- 全局地址 : Internet中唯一的地址;




IP地址文本表现形式 : 有 IPv4 IPv6 两种格式;




主机名解析 :


-- 主机名到IP地址解析 : 使用 本地配置信息 和 网络命名服务 实现, 特定命名服务默认情况下 是本地机器配置的;


-- 反向名称解析 : 返回IP地址对应的主机名;




InetAddress 缓存 : 存储 主机名解析, 不管成功还是失败;


-- 默认缓存 : 正确解析的主机名 解析结果会永久保存, 如果解析失败 该记录只保存10秒;


-- 正主机名解析缓存 : 使用 networkaddress.cache.ttl 成功解析的缓存策略, 用于设置java安全属性设置为另外的 TTL 值进行正缓存;


-- 负主机名解析缓存 : 使用 networkaddress.cache.negative.ttl 解析主机名失败的缓存策略;






2. Inet4Address



类的全名称 :



public final class Inet4Address extends InetAddress

-- 作用 : 表示 IPv4 地址;



IP地址文本表示形式 :


-- 指定4部分 : d.d.d.d , 每个部分都是一个字节数据, 从左到右 分配给 IPv4 四个字节;


-- 指定3部分 : d.d.d , 最后一部分是2个字节, 放在最右边的网络地址上;


-- 指定2部分 : d.d , 最后一部份是3个字节, 放在最右边的三个字节上;


-- 指定1部分 : d , 直接存储在网络地址中, 字节不用重新排列;




多播地址范围 : IPv4 生存时间 (Time-to-live) 作为多播范围字段库增加一倍;


-- TTL = 0 : 表示节点本地;


-- TTL = 1 : 表示链接本地;


-- TTL = 32 : 表示站点本地;


-- TTL = 64 : 表示地区本地;


-- TTL = 128 : 表示大陆本地;


-- TTL = 255 : 表示全球;




3. Inet6Address



类的全名称 :



public final class Inet6Address extends InetAddress

-- 作用 : 代表 IPv6 地址;


目录
相关文章
|
11月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
缓存 监控 负载均衡
如何提升 API 性能:来自 Java 和测试开发者的优化建议
本文探讨了如何优化API响应时间,提升用户体验。通过缓存(如Redis/Memcached)、减少数据负载(REST过滤字段或GraphQL精确请求)、负载均衡(Nginx/AWS等工具)、数据压缩(Gzip/Brotli)、限流节流、监控性能(Apipost/New Relic等工具)、升级基础设施、减少第三方依赖、优化数据库查询及采用异步处理等方式,可显著提高API速度。快速响应的API不仅让用户满意,还能增强应用整体性能。
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
561 2
|
11月前
|
JSON Java API
【干货满满】分享拼多多API接口到手价,用Java语言实现
本方案基于 Java 实现调用拼多多开放平台商品详情 API,通过联盟接口获取商品到手价(含拼团折扣与优惠券),包含签名生成、HTTP 请求及响应解析逻辑,适用于电商比价、导购系统集成。
|
11月前
|
JSON Java API
【干货满满】分享淘宝API接口到手价,用Java语言实现
本文介绍了如何使用 Java 调用淘宝开放平台 API 获取商品到手价,涵盖依赖配置、签名生成、HTTP 请求与响应解析等核心实现步骤。
|
12月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
405 11
|
数据采集 存储 Java
Java爬虫获取微店店铺所有商品API接口设计与实现
本文介绍如何使用Java设计并实现一个爬虫程序,以获取微店店铺的所有商品信息。通过HttpClient发送HTTP请求,Jsoup解析HTML页面,提取商品名称、价格、图片链接等数据,并将其存储到本地文件或数据库中。文中详细描述了爬虫的设计思路、代码实现及注意事项,包括反爬虫机制、数据合法性和性能优化。此方法可帮助商家了解竞争对手,为消费者提供更全面的商品比较。
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
5080 5

热门文章

最新文章