当前位置: 首页 > 知识库问答 >
问题:

如何将基URI设置为Spring WebClient

姬乐池
2023-03-14
@Bean
public WebClient defaultWebClient() {

    var tcpClient = TcpClient.create()
            .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3_000)
            .doOnConnected(connection ->
                    connection.addHandlerLast(new ReadTimeoutHandler(3))
                            .addHandlerLast(new WriteTimeoutHandler(3)));

    return WebClient.builder()
            .baseUrl("https://test.com")
            .clientConnector(new ReactorClientHttpConnector(HttpClient.from(tcpClient)))
            .defaultHeader(HttpHeaders.ACCEPT, "application/vnd.api+json")
            .build();
}
String user = webClient
                .get()
                .uri(URI.create("/api/v1/user/1"))
                .header("Authorization", TOKEN)
                .header(HttpHeaders.ACCEPT, "application/json")
                .retrieve()
                .bodyToMono(String.class)
                .block();

我不确定需要在哪里进行更改,以便它开始指向基URI,而不是localhost(127.0.0.1:12012)。另一件事是,如果我在API调用中传递完全限定名(https://test.com/API/v1/user/1),那么它就可以正常工作。

共有1个答案

伯洋
2023-03-14

来自javadoc的方法uri(uri uri)

使用绝对的、完全构造的URI指定URI

因此此版本的方法不使用配置中的基url。

String user = webClient
            .get()
            .uri(uriBuilder -> uriBuilder.path("/api/v1/user/1").build())
            ...
 类似资料:
  • 问题内容: 我尝试过这种方式,但是它没有改变吗? 问题答案: 最好使用.png文件;.ico是Windows特定的。最好不要使用文件,而是使用类资源(可以包装在应用程序的jar中)。 尽管您甚至可能考虑将setIconImages用于多种尺寸的图标。

  • 我使用的是Spring Kafka 2.2.7,我已经将配置为,并使用消费消息,一切都按预期运行。 我想添加一个来记录所有消耗的消息,但发现很难配置它。留档指出可以在容器上设置RecordInterceptor,但我不确定如何获取容器的实例。 从版本2.2.7开始,您可以向侦听器容器添加RecordInterceptor;它将在调用允许检查或修改记录的侦听器之前被调用。 我查阅了Spring文档,

  • 我将一个字符串设置为activeElement.value,一切正常。现在,我想为activeElement.value设置一个变量,我得到了以下错误代码: 线程“main”中的异常 org.openqa.selenium.WebDriver异常:未定义患者 ID 命令持续时间或超时:66 毫秒 构建信息:版本:“2.45.0”,修订版:“5017cb8”,时间:“2015-02-26 23:59

  • 问题内容: 我想设置progressDialog的主题。要创建它,我使用以下代码: 我不能只是写 因为show()方法是静态的,并且我收到编译器警告。有没有办法使用可用的常量,例如 设置对话框主题? 我还想更改Dialog的背景并弄个圆角(我不想使用progressDialog内的progressBar进行任何更改。这里有许多教程,但是它们通常描述了如何创建扩展progressDialog类的新类

  • 如何将样式仅设置为之一(而不是自定义)?我是否必须创建2个和一个自定义ImageView,因为我必须传递样式抛出它们的?

  • 我在做一个游戏,提问和玩家通过选择四个按钮之一来回答他们。我有两门课,一门是'QuestionsandButtons',另一门是'Main'。我想从'QuestionSandButtons'类中的arraylist字符串中获取一个元素,并将其显示到'Main'类中的JButton上。 当单击'GeneralKnowledge'按钮时,我希望将arraylist项设置为JButton'Option1