私は2つのPHPデータベースを同時に更新する必要のあるアプリケーションを開発しています。最初のPHP DBから、私はメイン画面に表示する必要があるデータを取得するので、onPostExecuteで処理されます。しかし、2番目のPHP DBでは、私がそこにあるレコードをチェックして更新する必要があります.1つのJavaプログラムで複数のPHPリクエストを実行する方法を理解できません。以下のコードは次のとおりです。1つのJava非同期タスクを介して複数のPHPコードに接続
Javaコード
public class BackgroundTask extends AsyncTask<String, Void, String> {
String json_url;
Context context;
public BackgroundTask (Context c) { context = c;}
public BackgroundTask() {
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "... my link ..."; // to get data of the user
if (type.equals("login")) {
try {
String user_name = params[1];
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(user_name, "UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
StringBuilder stringBuilder = new StringBuilder();
String results = "";
String line = "";
while ((STRING_JSON = bufferedReader.readLine()) != null) {
results += line;
stringBuilder.append(STRING_JSON + "\n");
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
//connectionStatus = true;
Log.i("doInBackgroundTry->try", "stringbuilder in the end is " + stringBuilder.toString());
master_string = stringBuilder.toString().trim();
return stringBuilder.toString().trim();
} catch (MalformedURLException e) {
Toast.makeText(context, "malformed exception error is " + e.toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
public void onPreExecute() {
json_url = " ... my link ...";
}
@Override
public void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
public void onPostExecute(String result) {
// random updation of the UI
}
}
全二PHP DBを持っているが、それは表にすでにだったかどうかは、その後何も起こらないだろうが、場合であれば、チェックされるIDですそれはDBに追加されませんでした。
あなたはタイプ変数を変更することができます。実行しているときと同じように、PHPコードを使用するメソッドの型を伝える必要があります。if(type.equals( "login"))を次のように追加して変更できます。else if(type.equals ( "second_query"))... –
もっと手の込んだことができますか? –
私は答えを投稿します、私は私のアプローチが正しいと確信しています。しばらくお待ちください... –