Chcę pobrać dane z serwera WWW w aplikacji na Androida i nie wiem od czego zacząć. Czy powinienem korzystać z usług internetowych?Jak mogę pobrać dane z serwera WWW w aplikacji na Androida?
Odpowiedz
Polecam te tutoriale:
Connect android with PHP and MySql, JSON in android i PHP and MySQLi
Kiedyś te tutoriale i udało się uzyskać to, co staramy się robić pracuje bez większych trudności .
Pomiędzy nimi opisują każdy krok, jak wykonać to, czego próbujesz na każdym etapie, aplikację na Androida, bazę danych i stronę serwera WWW oraz zawierają dodatkowe informacje na temat tego, co możesz zrobić, aby przetworzyć i użyć otrzymanego informacje
Jedyna rzecz, którą chciałbym dodać to, że samouczek Connect android z PHP i MySql wykorzystuje mysql_ w php, który jest przestarzały. Znacznie lepiej jest używać MySqli, dlatego dodałem trzeci link.
Podstawowy zarys tego, co chcesz zrobić to:
1) w aplikacji na Androida złożyć wniosek do skryptu serwer PHP przy użyciu klasy tak:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
public class JSONParser {
// Response from the HTTP Request
static InputStream httpResponseStream = null;
// JSON Response String to create JSON Object
static String jsonString = "";
// Method to issue HTTP request, parse JSON result and return JSON Object
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {
try {
// get a Http client
DefaultHttpClient httpClient = new DefaultHttpClient();
// If required HTTP method is POST
if (method == "POST") {
// Create a Http POST object
HttpPost httpPost = new HttpPost(url);
// Encode the passed parameters into the Http request
httpPost.setEntity(new UrlEncodedFormEntity(params));
// Execute the request and fetch Http response
HttpResponse httpResponse = httpClient.execute(httpPost);
// Extract the result from the response
HttpEntity httpEntity = httpResponse.getEntity();
// Open the result as an input stream for parsing
httpResponseStream = httpEntity.getContent();
}
// Else if it is GET
else if (method == "GET") {
// Format the parameters correctly for HTTP transmission
String paramString = URLEncodedUtils.format(params, "utf-8");
// Add parameters to url in GET format
url += "?" + paramString;
// Execute the request
HttpGet httpGet = new HttpGet(url);
// Execute the request and fetch Http response
HttpResponse httpResponse = httpClient.execute(httpGet);
// Extract the result from the response
HttpEntity httpEntity = httpResponse.getEntity();
// Open the result as an input stream for parsing
httpResponseStream = httpEntity.getContent();
}
// Catch Possible Exceptions
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
// Create buffered reader for the httpResponceStream
BufferedReader httpResponseReader = new BufferedReader(
new InputStreamReader(httpResponseStream, "iso-8859-1"), 8);
// String to hold current line from httpResponseReader
String line = null;
// Clear jsonString
jsonString = "";
// While there is still more response to read
while ((line = httpResponseReader.readLine()) != null) {
// Add line to jsonString
jsonString += (line + "\n");
}
// Close Response Stream
httpResponseStream.close();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
try {
// Create jsonObject from the jsonString and return it
return new JSONObject(jsonString);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
// Return null if in error
return null;
}
}
}
który obsługuje komunikację , otwiera połączenie i odbiera ciąg JSON, który następnie przetwarza w obiekt JSON.
2) na serwerze php mysqli otworzyć połączenie z bazą danych SQL, uruchomić mysqli-> zapytanie() i zrobić coś jak następuje w wyniku:
if (mysqli_num_rows($result) > 0) {
// looping through all results
$response["apps"] = array();
while ($row = mysqli_fetch_array($result)) {
$apps = array();
$apps["name"] = $row["name"];
$apps["package"] = $row["package"];
$apps["version"] = $row["version"];
$apps["dateversion"] = $row["dateversion"];
$apps["sdkver"] = $row["sdkver"];
$apps["pathroot"] = $row["pathroot"];
$apps["rootname"] = $row["rootname"];
$apps["apkmd5"] = $row["apkmd5"];
$apps["extraapkmd5"] = $row["extraapkmd5"];
$apps["instructionsmd5"] = $row["instructionsmd5"];
$apps["assetsmd5"] = $row["assetsmd5"];
$apps["root"] = $row["root"];
$apps["current"] = $row["current"];
// push single product into final response array
array_push($response["apps"], $apps);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
tej iteracji bazy Odpowiedź i koduje go do łańcucha JSON, który jest wysyłany z powrotem do aplikacji na Androida, które mogą go przetworzyć.
Jak stworzyć coś takiego jest wszystko wyjaśnione w tutoriali połączoną
Najpierw musisz wybrać pomiędzy usługą internetową, której będziesz używać.
Następnie znajdź typ najlepiej dopasowany do Twoich potrzeb.
Według mnie, to najprostszy sposób do analizowania json, XML lub mydło s następująco (z linkiem samouczek):
Json :Jackson frame work
xml :Simple framework
soap :ksoap2 framework
To nie bezpośrednio odpowiedzieć na pytanie, ale od ciebie” ve zapytał, od czego zacząć, powinieneś zacząć poprawnie, budując swoje żądania internetowe w AsyncTask. Umożliwi to tworzenie żądań w osobnym wątku i ustawianie danych w interfejsie użytkownika.
AsyncTasks używać puli wątków i kolejki pracy również ułatwiają aktualizację użytkownika postępu. Istnieje kilka dobrych przykładów tutaj: AsyncTask Android example
- 1. Jak mogę pobrać dane z AsyncTasks doInBackground()?
- 2. jak uzyskać dane json z serwera php do androida komórkowego
- 3. Jak pobrać dane aplikacji w Xcode 6
- 4. Jak wysyłać multimedia z serwera do aplikacji na Androida?
- 5. zużywających usługi WWW WCF z aplikacji na Androida?
- 6. Jak mogę odtwarzać różne pliki wideo w aplikacji na Androida?
- 7. Jak pobrać plik z serwera w Vaadin7?
- 8. Jak pobrać niezatłoczone wyjątki w aplikacji WWW serwletu Java
- 9. Jak mogę pobrać ścieżkę z obrazu w galerii Androida?
- 10. Global.asax - Application_Error - Jak mogę pobrać dane strony?
- 11. Jak korzystać z aplikacji C++ na serwerze WWW?
- 12. Czy można uzyskać dane z innej aplikacji na Androida?
- 13. Jak mogę pobrać dane z procedury składowanej do tabeli tymczasowej?
- 14. Jak pobrać plik do klienta z serwera?
- 15. Pobierz dane z serwera jupyter
- 16. Jak korzystać z HttpWebRequest/Response Aby pobrać plik binarny (.exe) z serwera WWW?
- 17. Sprawdź, czy żądanie http pochodzi z mojej aplikacji na Androida
- 18. Jak zachować główne dane aplikacji na końcu serwera?
- 19. Przesyłaj wideo z serwera php na Androida programowo
- 20. Jak mogę pobrać dane z SQLite do VB6?
- 21. Jak mogę pobrać dane z moich import.io serwerów api
- 22. Jak wysłać dane do witryny za pomocą aplikacji na Androida
- 23. Jak korzystać z aplikacji WhatsApp w mojej aplikacji na Androida?
- 24. Tworzenie bazy danych WWW/serwera do użycia z aplikacją Android
- 25. Jak mogę zintegrować portfel Paytm w aplikacji na Androida?
- 26. Jak mogę zintegrować reklamy AirPush w mojej aplikacji na Androida?
- 27. Jak najlepiej załadować Lokalizacje MapView z serwera WWW
- 28. Powiadomienia Growl z serwera WWW
- 29. Jak mogę pobrać system plików na żywo mojej aplikacji Appfog?
- 30. NodeJS Jak pobrać dane z serwera, wysłanej z jquery ajax poprzez wywołanie POST
ów pytanie bardzo ogólne, ale napisali odpowiedź, która zawiera linki do trzech ćwiczeń obejmujących od początku do końca dokładnie ten proces – o0rebelious0o
Hmm, chodziło o zadać pytanie z dokładnym brzmieniem. Wydaje mi się jasne i użyteczne! –
"zamknięte, ponieważ nie jest to prawdziwe pytanie Charlesa, Bill the Lizard" ta strona internetowa staje się coraz bardziej absurdalna ... – AlwaysConfused