当前位置: 首页> 财经> 访谈 > 构建URI

构建URI

时间:2025/7/18 17:19:43来源:https://blog.csdn.net/qq_41848006/article/details/142214356 浏览次数:1次

构建URI

1、org.springframework.web.util.UriComponentsBuilder

org.springframework.web.util.UriComponentsBuilder 是 Spring 框架提供的一个工具类,用于构建和解析 URL 字符串。它提供了一种简单而强大的方式来构造复杂的 URL,尤其是在处理 HTTP 请求时非常有用。
使用 UriComponentsBuilder 构建 URL 的步骤

1.1、创建 UriComponentsBuilder 实例

可以通过静态方法 fromUriString 或 fromHttpUrl 创建 UriComponentsBuilder 实例。

1.2、设置 URL 组件

可以使用链式方法设置 URL 的各个部分,如路径、查询参数等。

1.3、构建最终的 URL

使用 build().toUriString() 方法生成最终的 URL 字符串。
示例代码
下面是一个具体的示例,展示如何使用 UriComponentsBuilder 构建一个带有查询参数的 URL:

import org.springframework.web.util.UriComponentsBuilder;
import java.net.URI;public class UriComponentsBuilderExample {public static void main(String[] args) {// 创建 UriComponentsBuilder 实例UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://example.com/resource");// 设置路径参数builder.path("/path/{param1}/{param2}");// 添加查询参数builder.queryParam("key1", "value1");builder.queryParam("key2", "value2");// 设置片段builder.fragment("section");// 构建最终的 URLString finalUrl = builder.build().toUriString();System.out.println("Final URL: " + finalUrl);}
}

结果

Final URL: http://example.com/path/{param1}/{param2}?key1=value1&key2=value2#section
1.4、详细说明

1、创建实例:
UriComponentsBuilder.fromHttpUrl(“http://example.com/resource”) 创建了一个 UriComponentsBuilder 实例,初始化了基本的 URL 部分。
2、设置路径参数:
builder.path(“/path/{param1}/{param2}”) 设置了路径,并允许使用占位符 {param1} 和 {param2}。
3、添加查询参数:
builder.queryParam(“key1”, “value1”) 和 builder.queryParam(“key2”, “value2”) 添加了查询参数。
4、设置片段:
builder.fragment(“section”) 设置了 URL 的片段部分。
5、构建最终的 URL:
builder.build().toUriString() 构建并返回最终的 URL 字符串。
6、其他常用方法

  • fromUri(URI uri):从 URI 对象创建 UriComponentsBuilder 实例。
  • scheme(String scheme):设置 URL 的协议部分。
  • host(String host):设置 URL 的主机部分。
  • port(int port):设置 URL 的端口部分。
  • userInfo(String userInfo):设置 URL 的用户信息部分。
  • pathSegment(String… segments):设置路径段。
  • query(String query):设置整个查询字符串。
  • replaceQueryParam(String key, Object value):替换查询参数。
    这些方法可以帮助你更灵活地构建和修改 URL。希望这些示例和说明对你有帮助!

2、org.apache.http.client.utils.URIBuilder

org.apache.http.client.utils.URIBuilder 是 Apache HttpClient 库提供的一个工具类,用于构建和解析 URI(Uniform Resource Identifier)。它提供了一种简单而灵活的方式来构造复杂的 URL,尤其适用于 HTTP 请求。
使用 URIBuilder 构建 URI 的步骤

1.1、创建 URIBuilder 实例

可以通过构造函数或静态方法创建 URIBuilder 实例。

1.2、设置 URI 组件

可以使用链式方法设置 URI 的各个部分,如协议、主机、端口、路径、查询参数等。

1.3、构建最终的 URI

使用 build() 方法生成最终的 URI 对象。
示例代码
下面是一个具体的示例,展示如何使用 URIBuilder 构建一个带有查询参数的 URI:

package com.example.demo;/*** @author chenwx* @date 2024/9/13*/
import org.apache.http.client.utils.URIBuilder;
import java.net.URI;public class URIBuilderExample {public static void main(String[] args) {try {// 创建 URIBuilder 实例URIBuilder builder = new URIBuilder("http://example.com/resource");// 设置路径参数builder.setPath("/path/zhangsan/1000");// 添加查询参数builder.setParameter("key1", "value1");builder.setParameter("key2", "value2");// 设置片段builder.setFragment("section");// 构建最终的 URIURI finalUri = builder.build();System.out.println("Final URI: " + finalUri.toString());} catch (Exception e) {e.printStackTrace();}}
}

结果

Final URI: http://example.com/path/zhangsan/1000?key1=value1&key2=value2#section
1.4、详细说明

1、创建实例:
new URIBuilder(“http://example.com/resource”) 创建了一个 URIBuilder 实例,初始化了基本的 URI 部分。
2、设置路径参数:
builder.setPath(“/path/{param1}/{param2}”) 设置了路径,并允许使用占位符 {param1} 和 {param2}。
3、添加查询参数:
builder.setParameter(“key1”, “value1”) 和 builder.setParameter(“key2”, “value2”) 添加了查询参数。
4、设置片段:
builder.setFragment(“section”) 设置了 URI 的片段部分。
5、构建最终的 URI:
builder.build() 构建并返回最终的 URI 对象。

6、其他常用方法

  • setScheme(String scheme):设置 URI 的协议部分。
  • setHost(String host):设置 URI 的主机部分。
  • setPort(int port):设置 URI 的端口部分。
  • setUserInfo(String userInfo):设置 URI 的用户信息部分。
  • setPath(String path):设置 URI 的路径部分。
  • setQuery(String query):设置整个查询字符串。
  • addParameter(String key, String value):添加查询参数。
  • removeAllParameters(String key):移除所有指定键的查询参数。
关键字:构建URI

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: