java - 如何正确填充 InetSocketAddress
问题描述
我正在尝试填充 Host 标头。我已经为我的示例插入了虚拟数据,但我想知道我是否正确填充了它。当检查地址的值时,它看起来不像我预期的那样。我希望 [domain]:[port] 但我看到 [domain]/[ip address]:[port]。这是正常的吗?
这是我正在使用的线路
InetSocketAddress address = new InetSocketAddress("sample.com", 8080);
这是之后的变量值:
address = {InetSocketAddress} sample.com/173.230.129.147:8080
谢谢
解决方案
是的,这很正常。InetSocketAddress
尝试自动将主机名解析为 IP 地址。
从API 规范:
该类实现了一个 IP 套接字地址(IP 地址 + 端口号),它也可以是一对(主机名 + 端口号),在这种情况下,将尝试解析主机名。
如果要创建 InetSocketAddress 而不将主机名解析为 IP 地址,可以使用createUnresolved
工厂方法。
jshell> InetSocketAddress.createUnresolved("example.com", 8080);
$20 ==> example.com:8080
推荐阅读
- sql - 如何过滤 SQL 的 Where 语句的多个值
- rabbitmq - 在 RabbitMQ 中具有多个路由密钥的一个交换或多个有效的交换
- java - 如何编写 Excel Upload 的 Junit 测试?
- laravel - 在 laravel 中修改表列时的迁移问题
- mongodb - MongoDB:我希望结果集按其他集合数据的顺序排列。我的架构和查询应该是什么?
- ansible - 稳定 | 列出具有共享主机的主机组
- node.js - create-react-app 只创建 package.json 文件
- haskell - 除了二叉搜索树之外,是否有任何有效的数据结构来表示 Set
- python - 熊猫读取将连续标题转换为列的数据框
- c# - 生成捆绑文件时应用程序清单文件错误