Java 内容类型为“的JAX-RS读取实体”*&引用;
我使用Jax-RS向服务器发出请求,服务器只返回一个单词字符串,并将该响应读入一个字符串变量。问题是我不知道如何使用响应,因为它的内容类型是Java 内容类型为“的JAX-RS读取实体”*&引用;,java,rest,jersey,jax-rs,content-type,Java,Rest,Jersey,Jax Rs,Content Type,我使用Jax-RS向服务器发出请求,服务器只返回一个单词字符串,并将该响应读入一个字符串变量。问题是我不知道如何使用响应,因为它的内容类型是*;charset=UTF-8(我用邮递员验证了这一点)。Jax-RS很难解析这种头。这是我的密码: MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>(); formData.add("username", username
*;charset=UTF-8
(我用邮递员验证了这一点)。Jax-RS很难解析这种头。这是我的密码:
MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
formData.add("username", username);
formData.add("target", "10");
Response response = target.request().accept(MediaType.APPLICATION_JSON_TYPE).post(Entity.form(formData));
String responseString = response.readEntity(String.class);
我如何让Jax-RS正确读取这种内容类型 我认为没有任何方法可以让Jersey/Jax-RS正确地读取这种内容类型。对于具有Jax-RS不喜欢的内容类型的任何类型的响应,一个解决方案就是简单地删除头部,并(如果需要)添加您自己的更适合响应的内容类型头部。在尝试读取响应实体之前执行此操作。这解决了我的问题:
response.getHeaders().remove("Content-Type");
response.getHeaders().add("Content-Type", "text/plain");
String responseString = response.readEntity(String.class);
我认为没有任何方法可以让Jersey/Jax-RS正确地读取这种内容类型。对于具有Jax-RS不喜欢的内容类型的任何类型的响应,一个解决方案就是简单地删除头部,并(如果需要)添加您自己的更适合响应的内容类型头部。在尝试读取响应实体之前执行此操作。这解决了我的问题:
response.getHeaders().remove("Content-Type");
response.getHeaders().add("Content-Type", "text/plain");
String responseString = response.readEntity(String.class);