2010-02-13 18 views
6

मेरे पास एक साधारण जावा क्लाइंट एप्लिकेशन (एंड्रॉइड ऐप) है। मुझे एक PHP सर्वर एप्लिकेशन लिखना है जो जावा क्लाइंट एप्लिकेशन से एक MySQL डेटाबेस में कुछ डेटा लिखने या MySQL डेटाबेस से कुछ डेटा पढ़ने के लिए अनुरोध प्राप्त करता है। इसे एक स्टेटस संदेश (असफल/सफलता लिखें) या क्रमशः अनुरोध किए गए डेटा के साथ जवाब देना चाहिए।जावा क्लाइंट एप्लिकेशन (एंड्रॉइड) और PHP सर्वर एप्लिकेशन के बीच संचार को कैसे कार्यान्वित करें?

मैं जावा क्लाइंट को एक अनुरोध कैसे भेजूंगा और PHP प्रोग्राम से जवाब प्राप्त करूंगा और PHP प्रोग्राम को अनुरोध कैसे प्राप्त होगा और उत्तर भेजेंगे? मैंने एसओएपी और आरईएसटी आर्किटेक्चर के बारे में गुमराह किया है, लेकिन एक साधारण ट्यूटोरियल की तलाश है जो मुझे इस सरल कार्यक्रम को लागू करने की अनुमति देगी।

धन्यवाद।

उत्तर

6

मूल जावा एसई एपीआई के साथ आप HTTP अनुरोध को आग लगाने के लिए java.net.URLConnection का उपयोग कर सकते हैं। GET अनुरोध को फायर करने का एक मूल उदाहरण Sun tutorial on the subject में पाया जा सकता है। एक POST अनुरोध बहुत अलग नहीं है, इसके बजाय आपको केवल URLConnection#setDoOutput() से true सेट करने की आवश्यकता है और क्वेरी स्ट्रिंग को URL में बजाय URLConnection#getOutputStream() पर लिखें।

ध्यान दें कि यह "आलसी निष्पादित" है, तो अनुरोध केवल तभी निकाल दिया जाएगा जब आप वास्तव में URLConnection#getInputStream() द्वारा प्रतिक्रिया स्ट्रीम प्राप्त करते हैं, भले ही आपको इसकी आवश्यकता न हो।

यदि आप अनुरोध पर कम वर्बोज़ कोड और/या अधिक नियंत्रण चाहते हैं, तो मैं Apache Commons HttpComponents Client का उपयोग करने की अनुशंसा कर सकता हूं।

बदले में PHP प्रोग्राम सामान्य तरीके से लिखा जा सकता है। $_GET, $_POST और प्रतिक्रिया पर echo पर अनुरोध पैरामीटर प्राप्त करें। यहां कुछ खास करने की ज़रूरत नहीं है। हालांकि आप एक्सएमएल या जेएसओएन जैसे अधिक आसान पारदर्शी प्रतिक्रिया प्रारूप का उपयोग करने पर विचार कर सकते हैं।

+0

आइए मान लीजिए कि हमने PHP प्रोग्राम को HTTP अनुरोध भेजा है जो $ _GET/$ _ POST पैरामीटर प्राप्त करता है, कुछ प्रसंस्करण करता है और "प्रक्रिया सफल" स्ट्रिंग को दोबारा गूंजना चाहता है। क्या मैं बस echo $ स्ट्रिंग करता हूं और जावा प्रोग्राम इसे URLConnection के इनपुटस्ट्रीम में प्राप्त करेगा? – user245120

+1

यह सही है। – BalusC

+0

ट्यूटोरियल में प्रदान की गई स्क्रिप्ट को चलाने पर मुझे पृष्ठ पर दिए गए त्रुटि का सामना करना पड़ रहा है http://stackoverflow.com/questions/2543106/fatal-error-by-java-runtime-environment लेकिन मैं अनुमान लगाने में सक्षम नहीं हूं इसके लिए कारण। – w2lame

1

आपको PHP के साथ एक साधारण JSON या XML आधारित REST वेब सेवा बनाना चाहिए।

फिर एंड्रॉइड एसडीके के साथ, आप अपनी वेब सेवा से कनेक्ट करने के लिए HttpClient मॉड्यूल का उपयोग कर सकते हैं। एसडीके परिणाम को पार्स करने के लिए JSON और XML मॉड्यूल भी प्रदान करता है।

संबंधित मुद्दे