Android 3.3 API 18
こんにちは、
私はAndroidを使用して最初のアプリを開発しています。アプリは、ユーザーデータを保存するためにオンラインデータベースに接続する必要があります。
MySQLデータベースが含まれているクラウドストレージを探しています。ただし、アプリはこのMySQLデータベースに直接接続して、そこからデータをプッシュおよびプルできますか?それとも私がしなければならないことが他にありますか?
提案をありがとう、
はい、できます。
必要な材料:
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
、あなたがデータを取得したい場所からURLを引数として渡します
例えば:
JSONObject jsonobject;
jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL");
4.最後に、jsontagsを読み取り、値を配列リストに格納し、必要に応じて後でリストビューに表示します。
問題がある場合は、このブログをフォローしてください。彼は優れたAndroidチュートリアルAndroidHiveを提供しています。
私が書いた上記の答えが戻って、今長かったのでHttpClient
、HttpPost
、HttpEntity
あなたはまだ継続して使用するbuild.gradle(アプリレベル)のコードの下に使用することができますアピ23で削除されたorg.apache.http
プロジェクトに。
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
WebサービスAPIを呼び出し、応答を取得し、後で使用してそれを解析するためにFasterXML-jackson
、google-gson
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加