- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 URL,我需要使用 Java 或 Javascript 对其进行百分比编码。
我无法提前知道 URL 是否包含协议(protocol)、端口或路径。我也不知道主机是名称、IPv4 地址还是 IPv6 地址。
这个网址:
http://[fc00::90:90]/path/to/[file].txt
有两组方括号。第一个没问题,需要 IPv6 地址。但是第二个应该是百分比转义。所以转义后的URL应该是:
http://[fc00::90:90]/path/to/%5Bfile%5D.txt
如何转义第二对而不转义第一对?
我认为 URI.toASCIIString
是显而易见的解决方案,但它不喜欢文件名中的括号并抛出
java.net.URISyntaxException:索引 29 处的路径中存在非法字符:http://[fc00::90:90]/path/to/[file].txt
还有一个选项可以将 URL 解析成它的组成部分并只转义路径部分,但如果可能的话我不想这样做。
谁能建议使用 Java 或 Javascript 的解决方案?谢谢。
最佳答案
我找到的针对此问题的最佳解决方案确实包括将 URL 解析为多个部分,但至少它是使用 java.net.URL
Java 库完成的。
java.net.URL
没有转义特殊字符的功能。 java.net.URI
确实具有此类功能,不会在 URL 路径中接受未转义的方括号。下面的方案结合了两者来解决问题:
URL url = new URL(urlString);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
String escapedURL = uri.toString();
关于java - 如何转义 URL 但保持 IPv6 地址周围的方括号不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780515/
目前部署在 Kubernetes 中的服务,通过 Calico BGP 将 Service 与集群外网络打通,并在外部的 nginx 中配置 Service 地址对外进行服务暴露。经过一段时间的观察
如发现here , 有一种新的 kube 服务是 IPVS 并且有很多负载均衡算法。 唯一的问题是我没有找到指定这些算法的位置。 我的理解: rr:循环法->循环调用后端pod lc:最少连接-> 将
我想尝试这种新的代理模式以及它为我们的一些应用程序提供的各种调度程序。到目前为止,我一直无法找到更改默认模式的方法 iptables至 ipvs在 GKE 节点上。 每个人都说通过--proxy-mo
我想在现有集群中为 IPVS 启用 Kube-proxy 模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS? 我已经安装了所有必需的模块来启用它。另外,
我正在开发的应用程序作为 Kubernetes 集群中的部署运行。为此部署创建的 Pod 分布在集群中的各个节点上。我们的应用程序一次只能处理一个 TCP 连接,并且会拒绝进一步的连接。目前,我们使用
我是一名优秀的程序员,十分优秀!