यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
नेटवर्किंग और HTTP
एक और ईमानदार पेज: फ़्रेमवर्क कोई हाई-लेवल HTTP क्लाइंट नहीं देता (ऐप को एर्गोनॉमिक Http.get()
जैसा कुछ नहीं दिखाया जाता)। आप java.net या कोई लाइब्रेरी उपयोग करते हैं (OkHttp पहले से क्लासपाथ में है,
मैप द्वारा आंतरिक रूप से उपयोग होती है)।
अनिवार्य नियम
अनुरोध को पेंट थ्रेड के बाहर करें और UI छूने के लिए Component.onUI(...) के साथ लौटें (देखें
बैकग्राउंड में काम)।
बाइट्स डाउनलोड करना — Utils.getRemoteFile(url)
किसी URL की सामग्री डाउनलोड करने के लिए शॉर्टकट:
new Thread(() -> {
byte[] dados = Utils.getRemoteFile("https://api.exemplo.com/dados"); // त्रुटि पर या WebGL में null
if (dados == null) { Component.onUI(() -> Hint.show("Falha na rede", 2000)); return; }
String corpo = new String(dados);
Component.onUI(() -> mostrar(corpo));
}).start();
⚠️
getRemoteFileHTTP त्रुटि, अपवाद और WebGL/TeaVM मेंnullलौटाता है — हमेशा जाँचें।
Jackson के साथ JSON (Gson नहीं)
प्रोजेक्ट का मानक 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();
java.net के साथ GET/POST
जब आपको नियंत्रण चाहिए (हेडर, POST), तो सीधे HttpURLConnection/OkHttp उपयोग करें — हमेशा किसी
बैकग्राउंड थ्रेड में, परिणाम onUI(...) के साथ वापस।
⚠️ WebGL/TeaVM में सीमाएँ
Web टारगेट पर, HTTP कॉल्स पर प्रतिबंध हैं (CORS, कोई सीधे सॉकेट नहीं) और getRemoteFile
null लौटाता है। इस स्थिति को संभालें या Web पर सुविधा को अक्षम करें (देखें platforms)।
अच्छी प्रथाएँ
- पेंट थ्रेड पर कभी नेटवर्किंग न करें — UI जम जाती है।
- Jackson, Gson नहीं (बाकी प्रोजेक्ट के साथ संगति)।
- हर प्रतिक्रिया में
null/अपवाद की जाँच करें; उपयोगकर्ता कोHint/Alertके ज़रिए त्रुटि दिखाएँ।
आम गलतियाँ
Http.get()/तैयार क्लाइंट ढूँढना — मौजूद नहीं है;java.net/OkHttp उपयोग करें।- नज़रअंदाज़ करना कि
getRemoteFileWebGL मेंnullहोता है। - नेटवर्क थ्रेड में सीधे पार्स करना/UI छूना (
onUIके बिना)।