2015-02-02 6 views
0

Я разрабатываю приложение для Android и теперь мне нужно синхронизировать данные между локальной базой данных и сервером database.im, используя json, php и mysql для выполнения этого. До сих пор я может отправлять данные на сервер, и я также могу получить данные. Но я хочу сделать эти два действия одновременно. я отправить с этой командой:Как отправлять и получать данные одновременно с помощью android с помощью json

 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()); 
     } 

я хочу, чтобы объединить Thes два commandes для отправки и получения какой-то даты, в то же время, я не знаю, как это сделать.help please

+0

Какие еще функции вы ищете вне обычного запроса/ответа HTTP? – tachyonflux

+0

Я просто хотел отправить и получить. Например, когда я хочу получить некоторые данные о конкретном пользователе, я хочу отправить этот идентификатор пользователя, а затем сервер вернет соответствующую информацию. –

ответ

0

Я думаю, что я получаю то, о чем вы просите, то, что вы пытаетесь достичь, заключается в том, что вы хотите отправить некоторые данные на сервер и для этого конкретного запроса вы хотите получить ответ правильно? Если это так, вы передадите данные в качестве пары namevalue и ответ будет получен для этого конкретного запроса в объекте 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()); 
    } 
+0

Я попробую это решение как можно скорее. Надеюсь, он решит мою проблему. Я нахожусь на нем, так как слишком много дней –