2011-12-15 11 views
9

मुझे एक ऐसा एप्लिकेशन विकसित करने की आवश्यकता है जो किसी कार्यालय में सर्वर पर संग्रहीत SQL सर्वर डेटाबेस तक पहुंच सके। टर्मिनल सर्वर पर कॉल स्टाफ दूरस्थ डेस्कटॉप पर, और डेस्कटॉप एप्लिकेशन का उपयोग कर डेटाबेस तक पहुंचें जिसके लिए डेटाबेस बनाया गया था। डेस्कटॉप एप्लिकेशन ओडीबीसी कनेक्शन के साथ डेटाबेस का उपयोग करता है। मैं एक एंड्रॉइड एप्लिकेशन लिख रहा हूं जो डेस्कटॉप एप्लिकेशन में उपलब्ध इस डेटाबेस तक पहुंच के एक छोटे से हिस्से की अनुमति देगा, और मैं अपने डेटाबेस को इस डेटाबेस से कनेक्ट करने के तरीकों की तलाश कर रहा हूं, चाहे वह ओडीबीसी कनेक्शन का उपयोग कर रहा हो (संभावित रूप से .Net का उपयोग कर), या किसी अन्य तरीके से।Android अनुप्रयोग का उपयोग कर सर्वर पर डेटाबेस तक पहुंचने का सबसे अच्छा तरीका

संपादित करें: मेरे प्रश्नों को समझने से पहले उत्तर देने वालों के लिए खेद है, यह दुर्घटना द्वारा पोस्ट किया गया है और कुछ संपादन करने से पहले मैंने उत्तर दिया।

उत्तर

3

आपको सर्वर की तरफ एक webservice लिखना है। डिवाइस को जेसन पैकेट के रूप में डेटा भेज सकते हैं और डिवाइस में जेसन पैकेट को पार्स कर सकते हैं और डेटा तक पहुंच सकते हैं। ? वेब सेवा करने के लिए अपने कॉल एक http कॉल जैसे

http होना चाहिए: \ सर्वर \ metnod \ get_somedata नाम = कुछ

और सर्वर इस पैरामीटर के लिए डेटाबेस क्वेरी और JSON के रूप में आप प्रतिक्रिया भेजना चाहिए। पार्स जेसन और अपना विवरण प्राप्त करें।

संपादित करें: सर्वर प्रतिक्रिया शीर्षलेख में सामग्री-प्रकार "एप्लिकेशन/जेसन" के रूप में सेट करें। क्लाइंट के लिए सर्वर पर http पोस्ट अनुरोध भेजने के लिए यह एक उदाहरण है। यहां jsonobjSend जेसन है जिसे मैंने कुछ विवरणों के साथ सर्वर को भेजने के लिए तैयार किया है। पूर्व {तालिका: "कुछ समय", आईडी: 9 0}। jsonobjRecv json जो सर्वर

HttpPost httpPostRequest = new HttpPost(url); 
     StringEntity se; 
     se = new StringEntity(jsonObjSend.toString()); 

     // Set HTTP parameters 
     httpPostRequest.setEntity(se); 
     httpPostRequest.setHeader("Authorization", usercredential); 
     httpPostRequest.setHeader("Accept", "application/json"); 
     httpPostRequest.setHeader("Content-type", "application/json"); 
     httpPostRequest.setHeader("Accept-Encoding", "gzip"); // only set this parameter if you would like to use gzip compression 
     long t = System.currentTimeMillis(); 
     response = (HttpResponse) httpclient.execute(httpPostRequest); 
     Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]"); 
     //Get hold of the response entity (-> the data): 
     HttpEntity entity = response.getEntity(); 

     if (entity != null) { 
      // Read the content stream 
      InputStream instream = entity.getContent(); 
      Header contentEncoding = response.getFirstHeader("Content-Encoding"); 
      if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) { 
       instream = new GZIPInputStream(instream); 
      } 

      // convert content stream to a String 
      String resultString= convertStreamToString(instream); 
      Log.v(null, "resultString "+resultString); 
      instream.close(); 


      // Transform the String into a JSONObject 
      if(resultString!=null){ 
       jsonObjRecv = new JSONObject(resultString); 

      } 

      // Raw DEBUG output of our received JSON object: 
      Log.i(TAG,"<jsonobject>\n"+jsonObjRecv.toString()+"\n</jsonobject>"); 

      return jsonObjRecv; 

}

/बनाने के लिए पार्स एक json जांच

+0

मैं कैसे सुनिश्चित करूं कि सी # में मेरी webservice वास्तव में JSON प्रारूप में डेटा भेजती है? – Dazzmaster1

+0

मैंने जवाब संपादित किया है। कृपया मुझे बताएं कि यह आपके लिए पर्याप्त है – AD14

+0

तो क्या ग्राहक निर्धारित करता है कि यह डेटा किस प्रारूप को प्राप्त करता है? मुझे सर्वर की तरफ कुछ भी अलग करने की ज़रूरत नहीं है? – Dazzmaster1

2

आपको एक वेब सर्वर बनाना होगा जो इंटरफ़ेस होगा, फिर आप अपने आवेदन के लिए एक webservice प्रदान कर सकते हैं।

यदि आप अपने डेस्कटॉप एप्लिकेशन को संशोधित कर सकते हैं, तो सीधे इसे http सेवा लागू करें। तो सेवा केवल तभी उपलब्ध होगी जब आपका एप्लिकेशन लॉन्च हो जाए।

जैसा कि एन्ड्रो ने कहा था कि आप जेसन चुन सकते हैं, यह डेटा के हस्तांतरण के लिए हल्का होगा। यदि आप जेसन टेक्नो चुनते हैं तो jackson पर एक नज़र डालें।

0

json.org इसके अलावा एक RESTful API जो JSON स्वीकार करता है तैनात किया जाना है सुझाव है कि द्वारा भेजा जाएगा है - और जेएसओएन परिणाम देता है।

आप URL-rewrites भी जोड़ सकते हैं, जो विभिन्न नियंत्रकों को यूआरएल भेजता है।

उदा। http // somehost.com/नियंत्रक/क्रिया ... जहां आप पोस्ट कर सकते हैं।

यह निश्चित रूप से एएसपी.नेट में किया जा सकता है (हाल ही में PHP में समान कुछ कोड किया गया है)।

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

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