Có, bạn có thể làm điều đó.
Vật liệu bạn cần:
- WebServer
- Cơ sở dữ liệu được lưu trữ trong máy chủ web
- Và một chút kiến thức về Android :)
- Các dịch vụ trang web (json, Xml ... vv) bất cứ thứ gì bạn thấy thoải mái
1. Trước tiên, hãy đặt quyền truy cập internet trong tệp kê khai của bạn
<uses-permission android:name="android.permission.INTERNET" />
2. Tạo một lớp để tạo HTTPRequest từ máy chủ (tôi đang sử dụng json parisng để nhận các giá trị)
ví dụ:
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. Trong MainActivity
của bạn Tạo một đối tượng của lớp JsonFunctions
và chuyển url dưới dạng đối số từ nơi bạn muốn lấy dữ liệu
ví dụ:
JSONObject jsonobject;
jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL");
4. Và cuối cùng đọc jsontags và lưu trữ các giá trị trong danh sách mảng và sau đó hiển thị nó trong listview nếu bạn muốn
và nếu bạn có bất kỳ vấn đề nào, bạn có thể theo dõi blog này. blog này cung cấp các hướng dẫn Android tuyệt vời AndroidHive
Vì câu trả lời ở trên tôi đã viết từ lâu và bây giờ là HttpClient
, HttpPost
, HttpEntity
đã bị xóa trong Api 23. Bạn có thể sử dụng mã bên dưới trong build.gradle (cấp ứng dụng) để tiếp tục sử dụng org.apache.http
trong dự án của bạn.
android {
useLibrary 'org.apache.http.legacy'
signingConfigs {}
buildTypes {}
}
hoặc Bạn có thể sử dụng HttpURLConnection
như bên dưới để nhận phản hồi của bạn từ máy chủ
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;
}
hoặc Bạn có thể sử dụng Thư viện của bên thứ 3 như Volley
, Retrofit
để gọi api dịch vụ web và nhận phản hồi, sau đó phân tích cú pháp bằng cách sử dụng FasterXML-jackson
, google-gson
.