サーバーからデータを取得し、変数として保存する方法。 コードはありません私に何か考えてください..!サーバーからデータを取得し、それらを変数としてAndroidに保存する
-5
A
答えて
-1
これを行う最も良い方法は、PHPとVolleyを使用することです。 Volleyは高速かつ効率的な図書館です。 PHPは、サーバーからデータを取得するのに役立ちます。あなたのAndroidアプリはJSON形式のデータを受け取り、変数として保存することができます。チュートリアルについてはAndroid Hiveをご覧ください。
0
ファイル
<uses-permission android:name="android.permission.INTERNET" />
DatabaseOperations.java
public String[][] getDatFromServer(String parameter1, String parameter2){
String line, result, column1AsString = "", column2AsString = "", column3AsString = "";
String[][] detailsArray;
try{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.example.or/folderName/getDetails.php");
List<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("parameter1", parameter1));
nameValuePairs.add(new BasicNameValuePair("parameter2", parameter2));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch (Exception ex) {
return null;
}
}
catch(Exception ex){
return null;
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
result = sb.toString();
is.close();
}
catch (Exception ex) {
return null;
}
try {
JSONArray jArray = new JSONArray(result);
int count = jArray.length();
for (int i = 0; i < count; i++) {
JSONObject jObject = jArray.getJSONObject(i);
column1AsString += jObject.getString("columnName1") + "#"; //data type of column in DB is VARCHAR
column2AsString += jObject.getString("columnName2") + "#"; //data type of column in DB is VARCHAR
column3AsString += jObject.getString("columnName3") + "#"; //data type of column in DB is VARCHAR
}
detailsArray = new String[][]{ column1AsString.split("#"), column2AsString.split("#"), column3AsString.split("#") };
return detailsArray;
} catch (Exception ex) {
return null;
}
}
getDetails.php
<?php
$parameter1 = $_REQUEST['parameter1'];
$parameter2 = $_REQUEST['parameter2'];
include_once("connection.php");
$query = "SELECT columnName1, columnName2, columnName3 FROM tableName WHERE searchingColumn1 ='$parameter1' AND searchingColumn2 = '$parameter2'";
$results = mysqli_query($connection, $query) or die("unable to execute the query");
while($rows = mysqli_fetch_array($results)){
$ress[] = $rows;
}
print json_encode(utf8ize($ress), JSON_UNESCAPED_SLASHES);
function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
?>
をマニフェストにこれを追加
connection.php
<?php
$connection = mysqli_connect("ServerHostURL", "Username", "Password", "DatabaseName") or die("unable to connect to the database");
?>
変数にデータを格納するためにあなたの活動にこれらの行を追加します。
class DBSynchronization extends AsyncTask<String, Void, String[][]> {
@Override
protected String[][] doInBackground(String... urls) {
try{
String[][] data = dbOperations.getDatFromServer("your_parameter_1", "your_parameter_2"); // if you don't need to filter data from DB, change "getDatFromServer" method signature (No parameter) and remove NameValuePair
return data;
}
catch(Exception e){
return null;
}
}
@Override
protected void onPostExecute(String[][] result) {
if(result == null){
// action for run when network connection was down or no data in DB
}
else{
myDataArray1 = result[0];
myDataArray2 = result[1];
myDataArray3 = result[2];
Toast.makeText(context, "Successfully saved data to arrays", Toast.LENGTH_SHORT).show();
}
}
}
は、このAsyncTaskを実行し、これらの線
DatabaseOperations dbOperations = new DatabaseOperations();
String[] myDataArray1, myDataArray2, myDataArray3;
new DBSynchronization().execute();
DB同期はメインスレッド内で実行する場合、アプリケーションがクラッシュすることができ、ので、私はAsyncTask内DBSynchronizationを追加
を追加します。同期がバックグラウンドで実行されている場合、ユーザーはクラッシュすることなくアプリケーションを使用できます。関連する問題
- 1. Android - Firebaseから取得したデータを保存する
- 2. サーバーからコアデータを保存して取得する
- 3. 他のRESTfulサーバーからデータを取得し、春にDBを保存する
- 4. mysqlから取得した保存データ
- 5. PHPのURLから変数を取得し、データベースに保存
- 6. Facebookから取得したデータをサーバーに保存することを許可しましたか?
- 7. AngularJS webapiからデータを取得してテーブルに保存
- 8. Android、サーバーからデータを取得
- 9. フォームからデータを取得し、それをJavaプロジェクトの変数として保存するにはどうすればよいですか?
- 10. HTMLフォームからサーバーにデータを保存していますか?
- 11. DataGridviewから値を取得して変数に保存する際の問題
- 12. どうすればローカルにデータを保存し、そこからデータが得られるのですか?
- 13. セクションリストのセクションデータの複数のURLからデータを取得して保存する
- 14. Nginxからmemcachedに保存されたデータを取得する
- 15. カスタムArraylistをSharedPreferencesに保存してそこから取得しますか?
- 16. FTPサーバーからExcelファイルを取得してGoogleドライブに保存する
- 17. シェルスクリプトは 'time'からリアルタイムに取得して変数に保存します
- 18. コマンドからコンソール出力を記録し、それを変数として変数に保存したい
- 19. JTextFieldから文字列を取得し、それを変数に保存する方法は?
- 20. サーバーからのアンドロイドリストアイテムデータベースにデータを保存
- 21. Android:サーバーからHTMLファイルをダウンロードしてアセットフォルダに保存
- 22. リンク(URL varriable)を使用してデータを取得してからデータベースに保存
- 23. 挿入順にLinkedHashSet要素を取得し、それらをローカル変数に保存します。
- 24. JSONデータから情報を取得し、CSVファイルに保存
- 25. データベースからデータを取得して変数に変換
- 26. Firebaseからデータを取得し、それを使用して
- 27. httpリクエストを介して変数からデータを取得する
- 28. postgresqlからphpでデータを取り出し、その値を変数に保存しました
- 29. データベースの行をクッキーに保存してからそれらを取得します
- 30. コールログから番号を取得してオブジェクトに保存する方法 - Android
Googleに会ったことがありますか? – zanderwar
ウェブサービスを呼び出してサーバーからデータを取得し、アプリケーションで使用したいと考えているので、質問を指定してください。しかし、これを行うときに直面している問題は非常に具体的でなければなりません –