Я разрабатываю приложение для Android, и теперь я должен синхронизировать данные между локальной базой данных и сервером database.im, используя json, php и mysql, чтобы выполнить это. До сих пор я могу отправлять данные на сервер, и я также могу получать данные. Но я хочу сделать эти два действия одновременно.
я посылаю с этой командой:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppostreq = new HttpPost(params[1]);
StringEntity se=null;
try {
se = new StringEntity(jsonobj.toString());
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
se.setContentType("application/json;charset=UTF-8");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json;charset=UTF-8"));
httppostreq.setEntity(se);
try {
HttpResponse httpresponse = httpclient.execute(httppostreq);
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
И для получения данных я использую:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("ville","L"));
// Envoie de la commande http
try{
HttpClient httpclient1 = new DefaultHttpClient();
HttpPost httppost = new HttpPost(params[0]);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient1.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection " + e.toString());
}
// Convertion de la requête en 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());
}
Я хочу объединить эти два командира, чтобы отправлять и получать какую-то дату одновременно, я не знаю, как это сделать. Помогите, пожалуйста
Я думаю, что я понимаю то, о чем вы просите, чего вы пытаетесь достичь, это то, что вы хотите отправить некоторые данные на сервер и для этого конкретного запроса вы хотите получить правильный ответ? Если это так, то вы передадите данные в виде пары имя-значение, и ответ будет получен для этого конкретного запроса в объекте httpresponse.
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppostreq = new HttpPost(params[1]);
StringEntity se=null;
try {
se = new StringEntity(jsonobj.toString());
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
se.setContentType("application/json;charset=UTF-8");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json;charset=UTF-8"));
httppostreq.setEntity(se);
try {
HttpResponse httpresponse = httpclient.execute(httppostreq);
HttpEntity entity = httpresponse.getEntity();
is = entity.getContent();
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 (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
Других решений пока нет …