当我使用下面的URL和代码从rest-easy发出请求时。我对每个请求得到不同的响应(调用API而不在请求标头中指定内容类型。多次这样做以查看不同的我正在使用rest-easy(Firefox插件)来调用URL并获得响应
我想默认在“text / plain”中获得响应。还有其他格式,如java / x-java-properties,text / xml 如果我没有在请求标头中指定Accept参数,我想获得text / plain响应。现在我有时会得到text / plain,有时会得到text / x-java-properties或text / xml
部署的版本在我的本地系统中。我能够获得响应y调用以下URL:
网址:http://localhost:8081/restfuljersey/rest/hello
代码:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/hello")
public class Hello {
@GET
@Produces("text/plain")
public String sayPlainTextHello() {
return "Hello Jersey Plain";
}
@GET
@Produces("text/x-java-properties")
public String sayHtmlHelloProperties( ) {
return "Hello Jersey Plain1111";
}
// This method is called if XML is request
@GET
@Produces("text/xml")
public String sayXMLHello() {
return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
}
// This method is called if HTML is request
@GET
@Produces("text/html")
public String sayHtmlHello() {
return "<html> " + "<title>" + "Hello Jersey" + "</title>"
+ "<body><h1>" + "Hello Jersey HTML" + "</h1></body>" + "</html> ";
}
}
答案 0 :(得分:0)
除非您自己指定标题,否则所有浏览器都会在HTTP请求中为Accept标头使用一组默认值。
请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values
E.g。 firefox使用Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
在这些值中,您会找到通配符标头*/*
,它允许服务器选择它返回的内容类型。浏览器使用它来涵盖所有可能的情况。