- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到在 Spring Boot 测试中,MockHttpServletResponse
的 getContentLength()
与 javax.servlet.http.HttpServletResponse
相同,只是读取请求头"Content-Length"
来判断返回值,但是如果在我的测试中我没有设置header,它返回0,忽略是否有任何内容。
@Then("xxxxx returns {string} and status code {int}")
public void xxxxx_returns_and_status_code(String result, Integer code) throws Exception {
assertThat(this.results.getResponse().getContentType()).isEqualTo(MediaType.APPLICATION_JSON_UTF8_VALUE); // <-- pass
assertThat(this.results.getResponse().getStatus()).isEqualTo(code); // <-- pass
System.out.println(this.results.getResponse().getContentLength()); // 0???
System.out.println(this.results.getResponse().getContentAsString()); // the correct response
assertThat(this.results.getResponse().getContentLength()).isNotEqualTo(0); // not pass, confusing
getContentAsString()// pass
}
它是标准的,但不知何故令人困惑。
为了让测试通过,我必须做:
assertThat(this.results.getResponse().getContentAsString().length()).isNotEqualTo(0);
为什么要这样实现?
最佳答案
可能是这种情况,在类中执行的值 HttpHeaders.CONTENT_LENGTH 的整数转换会导致此行为。这是设置 contentLength 值的代码(启动并重置为 0):
else if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) {
setContentLength(value instanceof Number ? ((Number) value).intValue() :
Integer.parseInt(value.toString()));
return true;
}
也许 getContentLengthLong 可以解决您的问题?
关于java - Spring Boot 测试 - MockHttpServletResponse getContentLength 返回 0 尽管有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005034/
这是我的下载图像宽度百分比代码[Java]: URL url = new URL(imageUrl); OutputStream os; URLConnection connectio
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
HttpURLConnection connection =(HttpURLConnection)blogFeedUrl.openConnection(); connectio
这是我的代码: url = paths[0]; HttpURLConnection connection = (HttpURLConnection) url.openConnection(); int
这是我的 kotlin 代码 override fun doInBackground val url = URL(f_url[0]) val connection = url.open
我已经为此苦苦挣扎好几天了,但似乎无法解决。 创建HttpURLConnection后至"http://goodmorningmartingrove.blogspot.ca/feeds/posts/d
我试图在下载文件之前获取文件的大小。我使用 conn.getContentLength(); 来执行此操作,它在我的家用计算机 Android 2.1 模拟器上运行良好。 但是,一旦我从我的手机(Wi
我正在尝试使用以下方法获取 URL 内容的大小: URLConnection conn = null; URL url = null; url = new URL("https://dl.dropbo
我有一个 URL,当我在浏览器中输入该 URL 时,它可以完美地打开图像。但是当我尝试下面的代码时,我得到的 getContentLength() 为 -1: URL url = new URL(im
本文整理了Java中org.apache.catalina.WebResource.getContentLength()方法的一些代码示例,展示了WebResource.getContentLengt
我是 Android 编程的新手,想获得一些帮助,以了解为什么当我尝试获取 XML 数据时 getContentLength() 返回 -1。 XML 网址是 String url = "http:/
为了处理 HTTP POST 或 PUT 中的大型请求主体,依赖 HttpServletRequest.getContentLength() 不是一个好主意,因为它只返回整数值,或者 -1请求正文 >
我想知道文件的长度,所以我尝试了 getContentLength()。它在网络连接(edge/3g)下工作正常,但在 WiFi 下返回 -1? 为什么? WiFi 正常,找到文件,可以下载,但 ge
我的问题重复 javax.servlet.HttpServletRequest.getContentLength() returns int only ,但是我感兴趣的是不同的。什么是正确的返回jav
以下代码在 Android 上为文件大小打印长度 -1,但在桌面 JAVA 上运行良好。我使用的是 Android 2.2。 URL url1 = null; URLConnection uconn
我尝试从服务器下载 zip 文件并显示进度条,但我得到 conexion.getContentLength()=-1。这就是为什么我无法显示进度对话框,下载工作正常。我的代码如下: URLConn
我正在开发一个 Android 应用程序,我正在下载一个文件并在进度条中显示进度。为此,我需要知道文件的长度。所以我正在使用下面提到的代码。但它返回-1。它适用于本地服务器。但是一旦它转移到实时服务器
我正在编写一个简单的 java 程序来连接到安装了 tomcat6 的服务器。问题是,当我使用以下代码访问服务器上的 .mp4 文件时,如果我访问 1.mp4 没问题,但是当我访问其他文件(2.mp4
我是 Android 的新手,正在开发一个带有 ProgressDialog 的文件下载应用程序,它显示下载百分比。我使用 AsyncTask,这是我的代码中有问题的部分。 protected Str
我注意到在 Spring Boot 测试中,MockHttpServletResponse 的 getContentLength() 与 javax.servlet.http.HttpServletR
我是一名优秀的程序员,十分优秀!