gpt4 book ai didi

java - MockHttpServletRequest 忽略设置字段,我该如何解决这个问题?

转载 作者:行者123 更新时间:2023-12-02 04:53:34 25 4
gpt4 key购买 nike

我正在尝试测试 Tomcat 应用程序的 servlet 过滤器。为此,我使用 Spring 提供的 MockHttpServletRequest。

我是这样设置的:

MockHttpServletRequest request = new MockHttpServletRequest();
request.setMethod("POST");
request.setRemoteHost("mycompany.com");
request.setRequestURI("/myapp.php");
request.setSecure(true);

但是当我执行以下操作时:

System.out.println(request.getRequestURL());

生成:http://localhost/myapp.php。另一方面,如果我明确请求我设置的字段之一,例如:

System.out.println(request.getRemoteHost());

我得到:mycompany.com

这是怎么回事?我怎样才能让 getRequestURL 产生我真正想要的东西:https://mycompany.com/myapp.php

最佳答案

Sotirios 关于 serverNameremoteHost 的说法是正确的;然而,这种改变只能让你部分实现目标。

以下内容将实现您的目标:

MockHttpServletRequest request = new MockHttpServletRequest();
request.setScheme("https");
request.setServerName("mycompany.com");
request.setServerPort(443);
request.setRequestURI("/myapp.php");

System.out.println(request.getRequestURL());
// Prints: https://mycompany.com/myapp.php

问候,

山姆

关于java - MockHttpServletRequest 忽略设置字段,我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29000051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com