Ich erhalte die obige Ausnahme, wenn ich versuche, Restservice mit Resttemplate in Android zu nutzen. Das Folgende ist der Code.
private class HttpRequestTask extends AsyncTask<Void, Void, ShiftPlannerModel[]> {
@Override
protected ShiftPlannerModel[] doInBackground(Void... params) {
try {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
ResponseEntity<ShiftPlannerModel[]> greeting = restTemplate.getForEntity(URL, ShiftPlannerModel[].class);
Log.i(greeting.getBody().toString(), "doInBackground: ");
return greeting.getBody();
} catch (Exception e) {
Log.e("doInBackgrouExcp", e.getMessage(), e);
}
return null;
}
HINWEIS: Der Restdienst ist auf dem lokalen Computer aktiv
Das Folgende ist der vollständige Stack-Trace: 4-19 00:56:21.260 11743-11794/com.example.admin.myapplication E/doInBackgrouExcp: E/A-Fehler: Keine Route zum Host; verschachtelte Ausnahme ist java.net.NoRouteToHostException: Keine Route zum Host org.springframework.web.client.ResourceAccessException: E/A-Fehler: Keine Route zum Host; verschachtelte Ausnahme ist java.net.NoRouteToHostException: Keine Route zum Host bei org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:491) bei org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439 ) unter org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:259) unter com.example.admin.myapplication.MainActivity$HttpRequestTask.doInBackground(MainActivity.java:132) unter com.example.admin.myapplication. MainActivity$HttpRequestTask.doInBackground(MainActivity.java:126) unter android.os.AsyncTask$2.
Die Ausnahme bedeutet genau das, was sie sagt: Ihr Betriebssystem hat keine Netzwerkroute zum Ziel. Es kann den Hostnamen in eine IP-Adresse übersetzen, aber wenn es versucht, dieses Ziel zu kontaktieren, gibt es keine Route.
Da dies localhost
immer routingfähig ist, habe ich den Eindruck, dass der Dienst, mit dem Ihr Code eine Verbindung herzustellen versucht, nicht, localhost
sondern ein anderer Dienst ist. Wenn Sie den vollständigen Stacktrace eingefügt hätten, wäre es offensichtlich geworden.
Wenn Sie versuchen, eine Verbindung zu einem Dienst herzustellen, der auf Ihrem Entwicklungscomputer von der Android-Laufumgebung ausgeführt wird, müssen Sie das Netzwerk auf dem Emulator einrichten .
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen