当我使用下面的URL和CODE中的静修中的请求时。我正在为每个请求获得不同的响应(致电API而不在请求标题中指定内容类型。多次执行此操作以查看不同的结果(。我正在使用REST-EASY(Firefox插件(调用URL并获取响应
默认情况下,我想在"文本/平原"中获得响应。还有其他格式,例如java/x-java-properties,text/xml。
如果我不指定请求标题中的接受参数,我想获取文本/普通响应。现在,我有时会得到文本/平原,有时甚至是文本/X-Java-Properties或Text/XML
部署版本在我的本地系统中。我能够调用以下URL的响应:
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> ";
}
}
所有浏览器都使用HTTP请求中的Accept标头的一组默认值,除非您自己指定标头。
在例如。Firefox使用Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
在这些值中,您找到了通配符标头*/*
,该值允许服务器选择其返回的内容类型。浏览器使用它来覆盖所有可能的情况。