2016-04-26 12 views
6

Ho un'applicazione che ospita una richiesta POST. Per richiedere, ho bisogno di definire alcune intestazioni, limiti e trattini. In altre parole, ho bisogno di creare la richiesta completa. Quale ho fatto con successo usando HttpURLConnection. Ora, voglio richiedere l'applicazione dalla mia applicazione Spring.Come reindirizzare la richiesta Spring ad un'altra applicazione?

Say, Ho tre applicazioni A (sensore), B (molla) e C (server).

In questo caso, B agirà come un ponte che riceve la richiesta da A autenticazione e inviarlo al C.

Non voglio alle imbarcazioni di nuovo la stessa richiesta in primavera solo reindirizzare il richiesta al server. C'è qualche meccanismo in primavera per questo?

+0

Basta chiedersi se il prefisso 'forward' sarà una buona opzione qui - http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#mvc-redirecting-forward-prefix verificare su più fonti – aksappy

+0

Trovato una domanda simile qui - questo aiuto - http://stackoverflow.com/questions/17955777/redirect-to-an-external-url-from-controller-action-in-spring-mvc – aksappy

+0

sì questa è una cosa come 'forward' ma non è discussa nella domanda. L'' forward' inoltra la stessa richiesta alla risorsa interna ma voglio inoltrarla all'esterno risorsa come in questione a ** C ** che è un'applicazione diversa in luoghi diversi (geograficamente). – Root

risposta

1

ci sono 3 meccanismi diversi di reindirizzamento:

  • in avanti: si passa la richiesta (e relativa risposta) ad un'altra servlet nello stesso contesto, cioè nella stessa applicazione web - per quanto ne so non è di cosa hai bisogno
  • reindirizza: dai al client (browser) la posizione (un URL) dove dovrebbe re-inviare una richiesta. Puoi reindirizzare a qualsiasi URL, ma suppone che l'app reindirizzata accetti direttamente la richiesta del cliente - come hai detto B funge da bridge, penso che non sia ancora quello che ti serve
  • proxy
  • : il ponte invia un nuova richiesta per il salto successivo e invierà di nuovo la risposta al proprio cliente. Poiché non esiste alcun accoppiamento tra la richiesta originale e quella nuova, è possibile utilizzare anche un protocollo diverso, ad esempio pipe o un socket Unix se si è sullo stesso server. Oppure potresti usare Json che è semplice da produrre e decodificare in richieste e risposte HTML. Nel mondo Windows, è possibile utilizzare anche DCOM o .NET per eseguire direttamente i metodi sul server remoto. Ma anche se è nascosto da questi strumenti, devi ancora creare una nuova richiesta sul bridge e decodificarla sul server (eccetto con DCOM/.NET sullo stesso server)
+0

Non voglio creare nuovamente la richiesta come hai detto in caso di 'proxy'. Ho un'idea di forward e redirect ma nessuna idea di proxy. Penso che dovrò esaminarlo se aiuta a non costruire nuovamente la richiesta. – Root

+0

Ho anche provato il reindirizzamento e l'inoltro a molla. Ma il reindirizzamento non cambia l'indirizzo IP del client della richiesta, quindi penso che sia inutile in questo caso. non potevo inoltrare a un altro URL neanche. – Root

Problemi correlati