हाँ, आप ऐसा कर सकते हैं।
आपके लिए आवश्यक सामग्री:
- वेबसर्वर
- वेबसर्वर में संग्रहीत एक डेटाबेस
- और Android का थोड़ा सा ज्ञान :)
- वेबसर्विसेज (जेसन, एक्सएमएल...आदि) जो कुछ भी आप सहज महसूस करते हैं
1. सबसे पहले अपनी मेनिफेस्ट फ़ाइल में इंटरनेट अनुमतियां सेट करें
<uses-permission android:name="android.permission.INTERNET" />
2. सर्वर से HTTPRequest बनाने के लिए एक वर्ग बनाएं (मैं मान प्राप्त करने के लिए json parisng का उपयोग कर रहा हूं)
उदाहरण के लिए:
public class JSONfunctions {
public static JSONObject getJSONfromURL(String url) {
InputStream is = null;
String result = "";
JSONObject jArray = null;
// Download JSON data from URL
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
// Convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
try {
jArray = new JSONObject(result);
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
return jArray;
}
}
3. आपके MainActivity
. में क्लास का ऑब्जेक्ट बनाएं JsonFunctions
और यूआरएल को एक तर्क के रूप में पास करें जहां से आप डेटा प्राप्त करना चाहते हैं
उदाहरण:
JSONObject jsonobject;
jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL");
4. और फिर अंत में jsontags पढ़ें और मानों को एक सरणी सूची में संग्रहीत करें और बाद में यदि आप चाहें तो इसे सूचीदृश्य में दिखाएं
और यदि आपको कोई समस्या है तो आप इस ब्लॉग का अनुसरण कर सकते हैंवह उत्कृष्ट एंड्रॉइड ट्यूटोरियल देता है AndroidHive
चूंकि उपरोक्त उत्तर मैंने बहुत पहले लिखा था और अब HttpClient
, HttpPost
,HttpEntity
एपीआई 23 में हटा दिया गया है। आप अभी भी org.apache.http
का उपयोग जारी रखने के लिए build.gradle(app-level) में नीचे दिए गए कोड का उपयोग कर सकते हैं आपके प्रोजेक्ट में।
android {
useLibrary 'org.apache.http.legacy'
signingConfigs {}
buildTypes {}
}
या आप HttpURLConnection
. का उपयोग कर सकते हैं सर्वर से अपनी प्रतिक्रिया प्राप्त करने के लिए नीचे की तरह
public String getJSON(String url, int timeout) {
HttpURLConnection c = null;
try {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Content-length", "0");
c.setUseCaches(false);
c.setAllowUserInteraction(false);
c.setConnectTimeout(timeout);
c.setReadTimeout(timeout);
c.connect();
int status = c.getResponseCode();
switch (status) {
case 200:
case 201:
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
br.close();
return sb.toString();
}
} catch (MalformedURLException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
return null;
}
या आप तृतीय पक्ष लाइब्रेरी जैसे Volley
. का उपयोग कर सकते हैं , Retrofit
webservice api को कॉल करने और प्रतिक्रिया प्राप्त करने के लिए और बाद में FasterXML-jackson
का उपयोग करके इसे पार्स करें , google-gson
।