I want to send GET-Requests which shall be answered by my REST-API.
My java programm currently supports text/plain
, text/html
, text/xml
and application/json
using the JAX-RS Reference Implementation Jersey.
To test the different media types I'm using the firefox addon RESTClient
. To change the media type I shall adjust the header with name=Content-Type
and e.g. value=text/xml
.
But the RESTClient always returns text/html
no matter which Content-Type
I choose. The only way right now to modify the returned result type is, to uncomment the html-section in my code. Then text/plain
will be the returned media type, but still the Content-Type
argument of the RESTClient stays ignored.
I'm using the most resent version of RESTClient, which is right now 2.0.3. Can you please help me?
Here is my Java-Code:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
//Sets the path to base URL + /hello
@Path("/hello")
public class restProvider {
// This method is called if TEXT_PLAIN is request
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return "Hello little World";
}
// This method is called if XML is request
@GET
@Produces(MediaType.TEXT_XML)
public String sayXMLHello() {
return "<?xml version=\"1.0\"?>" + "<hello> Hello little World" + "</hello>";
}
// This method is called if HTML is request
// Uncommenting the following 6 lines will result in returning text/plain
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello() {
return "<html> " + "<title>" + "Hello World" + "</title>"
+ "<body><h1>" + "Hello little World" + "</h1></body>" + "</html> ";
}
// This method is called if JSON is requested
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getJson(){
Gson gsonObject = new Gson();
return gsonObject.toJson(helloClass);
}
}
Accept: text/xml
and I got the requested response format. – Perri