我正在使用Jersey实施Rest服务。我想在浏览器上显示JSON,但我得到的是XML。
@Path("/todos")
public class TodosResource {
// Allows to insert contextual objects into the class,
// e.g. ServletContext, Request, Response, UriInfo
@Context
UriInfo uriInfo;
@Context
Request request;
// Return the list of todos to the user in the browser
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Todo> getTodosBrowser() {
List<Todo> todos = new ArrayList<Todo>();
todos.addAll(TodoDao.instance.getModel().values());
return todos;
}
我感谢你的帮助。
1)安装浏览器扩展,例如Postman(Chrome)或Poster(FireFox)2)在此扩展中添加标头接受:应用程序/json
添加jersey json。jar
将POJOMappingFeature添加到web.xmlinitparam,然后它会自动将java列表转换为json格式。
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
好的,您的代码声明它生成XML和JSON。根据浏览器设置,它可能会请求XML而不是JSON。
首先,检查您的代码是否真的可以生成JSON。从@Produces注释中删除MediaType.APPLICATION_XML
并再次测试。
如果这样做有效,您需要告诉浏览器请求JSON。将接受:application/json添加到请求头中。
如何做到这一点取决于您的客户端应用程序。在JavaScript中,这是通过添加以下内容来实现的
httpRequest.setRequestHeader('Accept', 'application/json');
取决于您使用的框架。您还可以在命令行上使用curl
进行测试
curl -H "Accept: application/json" http://yourhost/context/todos
如果您在浏览器中键入URL,它很可能会发送以下接受标头
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
因为浏览器希望向用户显示某些内容(样式化html)。这就是为什么MediaType。APPLICATION\u XML优先于您的MediaType。APPLICATION_JSON。
问题内容: 我是expressjs的新手,我无法使用数据对象发送响应。二进制内容在浏览器中可见。给我建议如何处理? 问题答案: 我测试了您的代码,它在chrome中对我有效,但有一个更改:更改为 编辑:由于您似乎认为仅POST服务器是一个好主意,请阅读:http : //net.tutsplus.com/tutorials/other/a-beginners-introduction-to-htt
问题内容: 如何在Web浏览器中的.html页面上显示pdf? 问题答案: 我使用的是Google文档可嵌入的PDF查看器。这些文档不必上传到Google文档,但必须在线提供。
我有一个java类,当我们运行时,会执行一个批处理文件。我有一个变量(布尔值),它将显示true或false,指示批处理文件是否正确执行其命令。现在,true或false输出只显示在控制台中。我希望在键入URL时,它会显示在web浏览器上(例如,) 到目前为止,我有以下代码: 运行批处理文件。JAVA BatchFile.java 这个批处理文件。Java类给了我以下错误: JAVA异常:测试类在
我正面临一个奇怪的问题。我已经把所有东西都放在php.ini文件里了。但是我不能在浏览器中显示任何错误。我google设置了. ini文件,并做了所有需要的事情。但是我仍然不能在浏览器中显示错误信息。我的PHP ini设置, 我尝试使用以下代码查看错误消息, 实际上文件示例不可用。所以它必须显示致命错误。但它显示的是空白页。 你能告诉我怎么解决这个问题吗?我不知道我错过了什么。
[GDrive与SeleniumChrome浏览器问题] 1 配置详细信息:Chrome版本72.0.3626.96 Chrome驱动程序版本2.43 Selenium WebDriver 3.11.0 问题描述: 2019年2月7日之前,我们能够使用selenium webdriver成功推出带有Chrome浏览器的Gdrive。但现在其他所有应用程序,如Gmail、Google hangout
问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: 如何使用servlet在jsp中显示pdf文件 我从数据库中检索pdf文件,并将其放入这样的文件中 现在这是在服务器端。在我的客户端中,每当用户单击jsp页面中的说 href = pdf(pdf是我的servlet名称) 的链接时 ,我都应该在客户端的浏览器上显示从数据库检索到的文件。 我该怎么办? 问题答案: 将响应的内容类型