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

测试HTTP响应内容类型不包含空格时的org.apache.http.entity.ContentType

唐骏祥
2023-03-14

我正在为授权服务器编写一个测试,测试oauth响应的内容类型是JSON。授权服务器使用的是< code > spring-security-oauth 2 2 . 0 . 1 . 4 . release ,我的JUnit测试使用的是< code >放心2.9.0。

@Test
public void testTokenEndpoint() throws Exception {
    // Client Credentials Grant
    ResponseBody clientCredentialsGrantResponseBody =
            given(this.spec)
                .authentication().basic(VALID_CLIENT_ID, VALID_CLIENT_SECRET)
                .queryParameter("grant_type", CLIENT_CREDENTIALS_GRANT)
                .queryParameter("username", VALID_USERNAME)
                .queryParameter("password", VALID_PASSWORD)
                .queryParameter("scope", VALID_SCOPES)
            .when()
                .post(OAUTH_TOKEN_ENDPOINT)
            .then()
                .assertThat().contentType(is(ContentType.APPLICATION_JSON.toString()))
            .extract().response().body();
}

当我运行这个测试时,我遇到了这个失败。

java.lang.AssertionError: 1 expectation failed.
Expected content-type is "application/json; charset=UTF-8" doesn't match actual content-type "application/json;charset=UTF-8".

因此,<code>org.apache.http.entity的值。ContentType</code>在类型和字符集之间包含一个空格,但授权服务器响应内容类型不包含。

现在我可以通过这样做来解决这个问题

.assertThat().contentType(is(ContentType.APPLICATION_JSON.toString().replace(" ", "")))

但是我觉得一定有更好的办法。

是否有一个没有空格的内容类型枚举可以使用?授权服务器是否可以配置为在内容类型中包含空格?

共有1个答案

微生智刚
2023-03-14

你可以尝试使用Spring的以下类:

看起来实现中没有空间。

 类似资料:
  • 我有一个小程序发送http请求并用TCP协议得到响应。 我的请求格式; 我从套接字逐行读取响应(在c#中使用NetworkStream和StreamReader),直到找到内容长度的标头。我存储长度,然后继续读取,直到找到空行。然后创建一个带有长度的缓冲区并接收其余的响应。 但有些响应没有内容长度标题。所以我的方法失败了。如果我不知道应该接收多少字节,我应该何时停止?

  • 我有两个不同的JTextPanes,第一个是不同线程发送消息的日志。在html文件中有保存的会话,当用户加载它们时,这些文件被用作第二个JTextPane的内容。这两个JTextPanes都具有html内容类型。 表格和空格还在。 表格和空格都不见了。我尝试使用而不是简单的空格,但结果是一样的。 第二个JTextPane的代码:

  • 我试图在一个新项目中运行一些java文件。所以我做了一个项目,把文件放在里面,我试着运行主文件,这样我的游戏就开始了。 null 我很确定它一定有效,因为我几个小时前在学校运行过它。我怎么让它工作?提前感谢!

  • 我尝试用RESTAssured测试我的restendpoint。响应总是一个html文档,但是我将accept-header设置为“application/json”。 *java.lang.IllegalStateException:无法解析对象,因为响应中没有指定支持的内容类型。内容类型是'text/html;charset=utf-8'。 [main]调试org.apache.http.wi

  • 几周以来,我一直在使用Spring-MVC开发一个rest api。REST-API工作正常,我几乎完成了最后一个问题,当涉及到对特定错误对象的错误处理时。 REST-API使用JSON作为序列化Java-Objects的格式。当服务执行过程中发生错误时,将创建一个特定的错误对象并将其发送回客户机。 当我的REST服务被标记为“produces=application/json”时,一切都很好。但

  • 我想在swagger中建模一个包含一组不同类型对象的响应对象,如下所示: 我尝试了下面的解决方案,但它将所有属性包装在一个对象中 { [ { "用户": [], "客户": [] } ] }.