我正在为授权服务器编写一个测试,测试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(" ", "")))
但是我觉得一定有更好的办法。
是否有一个没有空格的内容类型枚举可以使用?授权服务器是否可以配置为在内容类型中包含空格?
你可以尝试使用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中建模一个包含一组不同类型对象的响应对象,如下所示: 我尝试了下面的解决方案,但它将所有属性包装在一个对象中 { [ { "用户": [], "客户": [] } ] }.