org.springframework.web.util.UriBuilder类的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(9.2k)|赞(0)|评价(0)|浏览(274)

本文整理了Java中org.springframework.web.util.UriBuilder类的一些代码示例,展示了UriBuilder类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。UriBuilder类的具体详情如下:
包路径:org.springframework.web.util.UriBuilder
类名称:UriBuilder

UriBuilder介绍

[英]Builder-style methods to prepare and expand a URI template with variables.

Effectively a generalization of UriComponentsBuilder but with shortcuts to expand directly into URI rather than UriComponents and also leaving common concerns such as encoding preferences, a base URI, and others as implementation concerns.

Typically obtained via UriBuilderFactory which serves as a central component configured once and used to create many URLs.
[中]生成器风格的方法,用于准备和扩展带有变量的URI模板。
实际上是UriComponentsBuilder的一种泛化,但有直接扩展到URI而不是UriComponents的快捷方式,还将常见问题(如编码首选项、基本URI等)作为实现问题。
通常通过UriBuilderFactory获得,UriBuilderFactory作为一个中心组件,配置一次,用于创建多个URL。

代码示例

代码示例来源:origin: spring-projects/spring-framework

@Test
public void uriBuilder() {
  this.builder.build().get()
      .uri(builder -> builder.path("/path").queryParam("q", "12").build())
      .exchange();
  ClientRequest request = verifyAndGetRequest();
  assertEquals("/base/path?q=12", request.url().toString());
  verifyNoMoreInteractions(this.exchangeFunction);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void baseUriWithPathOverride() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://foo.com/v1");
  URI uri = factory.builder().replacePath("/baz").build();
  assertEquals("http://foo.com/baz", uri.toString());
}

代码示例来源:origin: spring-projects/spring-framework

@Test // SPR-17465
public void defaultSettingsWithBuilder() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
  URI uri = factory.builder().path("/foo/{id}").build("a/b");
  assertEquals("/foo/a%2Fb", uri.toString());
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void baseUri() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://foo.com/v1?id=123");
  URI uri = factory.uriString("/bar").port(8080).build();
  assertEquals("http://foo.com:8080/v1/bar?id=123", uri.toString());
}

代码示例来源:origin: spring-projects/spring-framework

public URI expand(String uriTemplate, Map<String, ?> uriVars) {
  return uriString(uriTemplate).build(uriVars);
}

代码示例来源:origin: io.github.reactivefeign/feign-reactive-core

protected ReactiveHttpRequest buildRequest(Object[] argv) {
  Map<String, ?> substitutionsMap = methodMetadata.indexToName().entrySet().stream()
      .flatMap(e -> e.getValue().stream()
          .map(v -> new AbstractMap.SimpleImmutableEntry<>(e.getKey(), v)))
      .collect(Collectors.toMap(Map.Entry::getValue,
          entry -> argv[entry.getKey()]));
  HttpMethod method = HttpMethod.resolve(methodMetadata.template().method());
  URI uri = defaultUriBuilderFactory.uriString(methodMetadata.template().url())
      .queryParams(parameters(argv)).build(substitutionsMap);
  return new ReactiveHttpRequest(method, uri, headers(argv, substitutionsMap),
      body(argv));
}

代码示例来源:origin: spring-projects/spring-framework

public URI expand(String uriTemplate, Object... uriVars) {
  return uriString(uriTemplate).build(uriVars);
}

代码示例来源:origin: daggerok/spring-5-examples

@Bean RouterFunction<ServerResponse> routes() {
  return
    route(POST("/api/v1/register-guest"), request -> {
     final String uuid = UUID.randomUUID().toString();
     final URI uri = request.uriBuilder()
                 .path(uuid)
                 .build();
     return created(uri).body(request.bodyToMono(Map.class)
                     .map(map -> map.get("name"))
                     .map(name -> {
                      log.info("create user {}", name);
                      return "";
                     }).subscribeOn(Schedulers.elastic()), String.class);
    })
    ;
 }
}

代码示例来源:origin: spring-cloud/spring-cloud-gateway

@Test
public void changeUriWorkWithCustomLogic() {
  testClient.get()
      .uri(b -> b.path("/")
          .queryParam("url",
              "http://localhost:" + port + "/actuator/health")
          .build())
      .header("Host", "www.changeuri.org").exchange().expectBody(JsonNode.class)
      .consumeWith(r -> assertThat(r.getResponseBody().has("status")).isTrue());
}

代码示例来源:origin: org.springframework/spring-web

public URI expand(String uriTemplate, Map<String, ?> uriVars) {
  return uriString(uriTemplate).build(uriVars);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void uriBuilderWithPathOverride() {
  this.builder.build().get()
      .uri(builder -> builder.replacePath("/path").build())
      .exchange();
  ClientRequest request = verifyAndGetRequest();
  assertEquals("/path", request.url().toString());
  verifyNoMoreInteractions(this.exchangeFunction);
}

代码示例来源:origin: spring-projects/spring-data-elasticsearch

builder = builder.path(request.getEndpoint());
    builder = builder.queryParam(entry.getKey(), entry.getValue());
return builder.build();

代码示例来源:origin: org.springframework/spring-web

public URI expand(String uriTemplate, Object... uriVars) {
  return uriString(uriTemplate).build(uriVars);
}

代码示例来源:origin: com.holon-platform.reactor/holon-reactor-spring

requestDefinition.getRequestPath().ifPresent(path -> ub.path(path));
  requestDefinition.getQueryParameters().forEach((n, v) -> ub.queryParam(n, v));
  return ub.build(requestDefinition.getTemplateParameters());
}).headers(headers -> {

代码示例来源:origin: spring-projects/spring-framework

@Test
public void encodeTemplateAndValues() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
  factory.setEncodingMode(EncodingMode.TEMPLATE_AND_VALUES);
  UriBuilder uriBuilder = factory.uriString("/hotel list/{city} specials?q={value}");
  String expected = "/hotel%20list/Z%C3%BCrich%20specials?q=a%2Bb";
  Map<String, Object> vars = new HashMap<>();
  vars.put("city", "Z\u00fcrich");
  vars.put("value", "a+b");
  assertEquals(expected, uriBuilder.build("Z\u00fcrich", "a+b").toString());
  assertEquals(expected, uriBuilder.build(vars).toString());
}

代码示例来源:origin: graphql-java/graphql-java-spring

@Test
public void testGetRequest() throws Exception {
  String variablesJson = "{\"variable\":\"variableValue\"}";
  String variablesValue = URLEncoder.encode(variablesJson, "UTF-8");
  String query = "query myQuery {foo}";
  String queryString = URLEncoder.encode(query, "UTF-8");
  String operationName = "myQuery";
  ExecutionResultImpl executionResult = ExecutionResultImpl.newExecutionResult()
      .data("bar")
      .build();
  CompletableFuture cf = CompletableFuture.completedFuture(executionResult);
  ArgumentCaptor<ExecutionInput> captor = ArgumentCaptor.forClass(ExecutionInput.class);
  Mockito.when(graphql.executeAsync(captor.capture())).thenReturn(cf);
  client.get().uri(uriBuilder -> uriBuilder.path("/graphql")
      .queryParam("variables", variablesValue)
      .queryParam("query", queryString)
      .queryParam("operationName", operationName)
      .build(variablesJson, queryString))
      .accept(MediaType.APPLICATION_JSON_UTF8)
      .exchange()
      .expectStatus().isOk()
      .expectBody()
      .jsonPath("data").isEqualTo("bar");
  assertThat(captor.getAllValues().size(), is(1));
  Map<String, Object> variables = new LinkedHashMap<>();
  variables.put("variable", "variableValue");
  assertThat(captor.getValue().getQuery(), is(query));
  assertThat(captor.getValue().getVariables(), is(variables));
  assertThat(captor.getValue().getOperationName(), is(operationName));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void encodingValuesOnly() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
  factory.setEncodingMode(EncodingMode.VALUES_ONLY);
  UriBuilder uriBuilder = factory.uriString("/foo/a%2Fb/{id}");
  String id = "c/d";
  String expected = "/foo/a%2Fb/c%2Fd";
  assertEquals(expected, uriBuilder.build(id).toString());
  assertEquals(expected, uriBuilder.build(singletonMap("id", id)).toString());
}

代码示例来源:origin: graphql-java/graphql-java-spring

@Test
public void testSimpleGetRequest() throws Exception {
  String query = "{foo}";
  String queryString = URLEncoder.encode(query, "UTF-8");
  ExecutionResultImpl executionResult = ExecutionResultImpl.newExecutionResult()
      .data("bar")
      .build();
  CompletableFuture cf = CompletableFuture.completedFuture(executionResult);
  ArgumentCaptor<ExecutionInput> captor = ArgumentCaptor.forClass(ExecutionInput.class);
  Mockito.when(graphql.executeAsync(captor.capture())).thenReturn(cf);
  client.get().uri(uriBuilder -> uriBuilder.path("/graphql")
      .queryParam("query", queryString)
      .build())
      .accept(MediaType.APPLICATION_JSON_UTF8)
      .exchange()
      .expectStatus().isOk()
      .expectBody()
      .jsonPath("data").isEqualTo("bar");
  assertThat(captor.getAllValues().size(), is(1));
  assertThat(captor.getValue().getQuery(), is(query));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void encodingNone() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
  factory.setEncodingMode(EncodingMode.NONE);
  UriBuilder uriBuilder = factory.uriString("/foo/a%2Fb/{id}");
  String id = "c%2Fd";
  String expected = "/foo/a%2Fb/c%2Fd";
  assertEquals(expected, uriBuilder.build(id).toString());
  assertEquals(expected, uriBuilder.build(singletonMap("id", id)).toString());
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void defaultSettings() {
  DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
  URI uri = factory.uriString("/foo/{id}").build("a/b");
  assertEquals("/foo/a%2Fb", uri.toString());
}

相关文章