2016-08-05 7 views
-1

Hallo, ich bin mit Resteasy api für meine Webservice .. ich eine Ressource, die ein Formular Post-Anforderung annehmen ..Redirect-URL in Java

@POST 
@Path("/path_here") 
public Response redirectURL(String req){ 
    String url = "http://localhost:8080/url_here"; 
    URL newUrl = new URL(url); 
    return Response.temporaryRedirect(newUrl.toURI()).build(); 
} 

den obigen Code schreiben nur die gewünschten Parameter auf die umgeleitete URL .. so bedeutet die umgeleitete URL hat die Post-Anfrage params ..

Ich würde gerne fragen, ob es eine Möglichkeit gibt, die Anfrage Parameter zu filtern und zu ändern, bevor es an die Weiterleitungs-URL geht?

+0

Clarify * Bearbeiten Sie den Post Request-Wert *. –

Antwort

0

Zunächst einmal, obwohl Sie Anfrage "POST" an Webservice senden, aber Ihre Weiterleitungs-URL wird als "GET" beim Weiterleiten an andere Website umgewandelt werden. Ich hoffe du weißt das schon.

Wenn Ihr Endpunkt Servlet ist, können Sie einen Filter definieren, bevor Sie das Servlet erreichen und versuchen, die Parameter zu bearbeiten.

+0

ja wusste ich schon, dass es in GET konvertiert wird. Wie kann ich diesen Filter definieren? Entschuldigung, aber ich habe nicht wirklich eine Idee :( –

0

Das wichtige Konzept der Umleitung ist, Server übernimmt die Umleitung nicht. Der Server teilt dem Client mit, "Bitte gehen Sie zu dieser URL", und der Client führt automatisch eine GET-Anfrage an die zurückgegebene URL aus. Was Sie tun können, ist, den Körper von der POST-Anfrage zu nehmen, Daten vom Körper in URL-Parameter umzuwandeln und die URL-Parameter wie gewünscht zu ändern.

S.S .: Dies ist ein Weg, um Ihr Problem zu lösen, es bedeutet nicht, dass Sie es tun sollten. Bitte tun Sie es nicht und finden Sie eine andere Lösung entsprechend Ihrem Kontext.