2016-06-27 10 views
1

Ich habe nanohttpd Server implementiert nano Mein Ziel ist es, Anfrage an andere Domäne basierend auf Bedingung, die ich habe weiterleiten. Es rediects zu https://www.google.comUmleiten zu einer anderen Domäne von nanoHttpd Server

Aber es rediect zu www.google.com von Client-Seite

Mein Code ist wie dieser

package CreateServer; 

import java.io.File; 
import java.io.IOException; 
import java.util.Collections; 
import java.util.Iterator; 
import java.util.Map; 
import java.util.Properties; 

import fi.iki.elonen.NanoHTTPD; 

import javax.xml.ws.Response; 

public class App extends NanoHTTPD { 

    public App() throws IOException { 
     super(8080); 
     start(NanoHTTPD.SOCKET_READ_TIMEOUT, false); 
     System.out.println("\nRunning! Point your browers to http://localhost:8080/ \n"); 

    } 

    public static void main(String[] args) { 
     try { 
      new App(); 
     } catch (IOException ioe) { 
      System.err.println("Couldn't start server:\n" + ioe); 
     } 
    } 

    @Override 
    public Response serve(IHTTPSession session) { 
     String msg = "<html><body><h1>Hello server</h1>\n"; 
     Map<String, String> parms = session.getParms(); 
     if (parms.get("username") == null) { 
      msg += "<form action='?' method='get'>\n <p>Your name: <input type='text' name='username'></p>\n" + "</form>\n"; 
     } else { 
      msg += "<p>Hello, " + parms.get("username") + "!</p>"; 
     } 
     String websiteName="https://www.google.com"; 
     StringBuilder html=new StringBuilder(); 
     html.append("<html><head><meta http-equiv=\"refresh\" content=\"0; URL='"+websiteName+"'\" /></head>"); 
     html.append("<body></body></html>\n"); 

     // return new Response(Response.Status.OK, MIME_PLAINTEXT, null, 0); 
     return newFixedLengthResponse(msg + "</body></html>\n"); 
     // return newFixedLengthResponse(html.toString()); 
     // Response response=new Response(Response.IStatus.class.); 
     // response.sendRedirect("login.jsp"); 

     //return Response() 
    } 

} 

Das Problem ist, wenn ich versuche,

auf eine andere Domain zu umleiten .Aber ist gibt es eine korrekte Möglichkeit, Anfrage an die Server-Seite als Client-Seite zu senden ?????

Wie kann ich das tun Ist ihre andere Möglichkeit dies zu tun? Bitte helfen Sie.

Antwort

4

In dem Beispiel unten, wenn der Benutzer versucht, Ihre Website/redirectme ​​zu öffnen, wird es auf Google umgeleitet.

@Override 
public Response serve(IHTTPSession session) { 

    switch (session.getUri()) { 

     case "/redirectme": 

      Response r = newFixedLengthResponse(Response.Status.REDIRECT, MIME_HTML, ""); 
      r.addHeader("Location", "http://google.com"); 
      return r; 
     default: 
      return super.serve(session); 
} 
Verwandte Themen