मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

नेटवर्किंग और 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();

⚠️ getRemoteFile HTTP त्रुटि, अपवाद और 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 उपयोग करें।
  • नज़रअंदाज़ करना कि getRemoteFile WebGL में null होता है।
  • नेटवर्क थ्रेड में सीधे पार्स करना/UI छूना (onUI के बिना)।

यह भी देखें

क्या यह पृष्ठ उपयोगी था?