Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.
Red y HTTP
Otra página honesta: el framework no trae un cliente HTTP de alto nivel (nada de Http.get()
ergonómico expuesto a la app). Usas java.net o una lib (OkHttp ya está en el classpath, usada
internamente por los mapas).
La regla obligatoria
Haz la petición fuera del paint thread y vuelve con Component.onUI(...) para tocar la UI (ver
Trabajo en segundo plano).
Descargar bytes — Utils.getRemoteFile(url)
Atajo para descargar el contenido de una URL:
new Thread(() -> {
byte[] dados = Utils.getRemoteFile("https://api.exemplo.com/dados"); // null en error O en WebGL
if (dados == null) { Component.onUI(() -> Hint.show("Falha na rede", 2000)); return; }
String corpo = new String(dados);
Component.onUI(() -> mostrar(corpo));
}).start();
⚠️
getRemoteFileretornanullen error HTTP, excepción y en WebGL/TeaVM — comprueba siempre.
JSON con Jackson (no Gson)
El estándar del proyecto es Jackson (com.fasterxml.jackson.databind.ObjectMapper):
ObjectMapper mapper = new ObjectMapper();
new Thread(() -> {
try {
byte[] json = Utils.getRemoteFile("https://api.exemplo.com/clientes");
if (json == null) return;
List<Cliente> clientes = mapper.readValue(json, new TypeReference<List<Cliente>>(){});
Component.onUI(() -> lista.setItems(clientes));
} catch (Exception e) { Debug.log("parse: " + e); }
}).start();
GET/POST con java.net
Cuando necesites control (headers, POST), usa HttpURLConnection/OkHttp directamente — siempre en un
hilo de fondo, resultado de vuelta con onUI(...).
⚠️ Limitaciones en WebGL/TeaVM
En el destino Web, las llamadas HTTP tienen restricciones (CORS, sin sockets directos) y getRemoteFile retorna
null. Trata ese caso o deshabilita la función en Web (ver platforms).
Buenas prácticas
- Nunca hagas red en el paint thread — la UI se congela.
- Jackson, no Gson (consistencia con el resto del proyecto).
- Comprueba
null/excepción en toda respuesta; muestra el error al usuario víaHint/Alert.
Errores comunes
- Buscar
Http.get()/cliente ya hecho — no existe; usajava.net/OkHttp. - Ignorar que
getRemoteFileesnullen WebGL. - Parsear/tocar la UI directamente en el hilo de red (sin
onUI).