2013-07-31 10 views
5

Ich möchte GET-Requests senden, die von meiner REST-API beantwortet werden sollen. Mein Java-Programm unterstützt derzeit text/plain, text/html, text/xml und application/json mit dem JAX-RS Referenzimplementierungstrikot.So ändern Sie den Content-Type von GET-Request über das firefox-Addon RESTClient

Zum Testen der verschiedenen Medientypen verwende ich das Firefox Addon RESTClient. Um den Medientyp zu ändern, muss ich den Header mit name=Content-Type und z. value=text/xml.

enter image description here

Aber das RESTClient gibt immer text/html egal welche Content-Type ich wähle. Die einzige Möglichkeit, den zurückgegebenen Ergebnistyp zu ändern, besteht darin, den HTML-Abschnitt in meinem Code auszukommentieren. Dann ist text/plain der zurückgegebene Medientyp, aber das Content-Type Argument des RESTClient bleibt weiterhin ignoriert.

Ich verwende die neueste Version von RESTClient, die jetzt 2.0.3 ist. Kannst du mir bitte helfen?

Hier ist mein 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); 
    } 

} 

Antwort

10

Ich glaube, Sie den Accept Header mit dem Medientyp angeben müssen Sie zusätzlich zu den Content-Type-Header wollen, die besagt, was der von Inhaltstyp ist Ihr Anfrage, NICHT der Inhaltstyp der Antwort in der Tat, die von den Accept Header gesetzt

So verwendet die Accept-Header statt Content-Type-Header

+0

Dank! Ich habe die Kopfzeile 'Accept: text/xml' hinzugefügt und das angeforderte Antwortformat erhalten. – Markus

+0

Hallo, wie Sie Accept hinzufügen: Text/XML in jedem GET HTTP-URLs – nilesh1212