2016-09-01 2 views
1

У меня есть base64 строка в моей базе данных sqlite, и я отправляю все эти записи на сервер. Я столкнулся с проблемой, что, когда я пытаюсь отправить эту строку base64 на сервер, он отправляет только первую необработанную запись, а затем отправляет null для других строк. Я отлаживаю свой код, и я вижу, что в первый раз он перебирает мое условие if, но для второй строки это условие chek else. как я могу это решить?Как получить все изображение base64 string из sqlite?

class async_SaveImage extends AsyncTask<String, Void, String> { 

     @Override 
     protected String doInBackground(String... params) { 

      SoapObject request = new SoapObject(namespacegetlistdata, method_name__image); 

      cursorImage = db.rawQuery("select * from FieldTestDataFinal Where isSend ='N'", null); 
      /*for(int i=0; i<cursor.getCount(); i++) 
      {*/ 
      int k = 0; 
      try { 
       if (cursorImage.moveToFirst()) { 

/*while (cursor.moveToNext())*/ 
        do { 
         JSONArray arr = new JSONArray(); 
         JSONObject jsonObject = new JSONObject(); 

         //request.properties.clear(); 
         if (k == 0) { 
          request.addProperty("fileByte1", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE1")));//add the parameters 
          request.addProperty("fileName1", cursorImage.getString(cursorImage.getColumnIndex("fileName1")));//add the parameters 

          request.addProperty("fileByte2", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE2")));//add the parameters 
          request.addProperty("fileName2", cursorImage.getString(cursorImage.getColumnIndex("fileName2")));//add the parameters 

          request.addProperty("fileByte3", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE3")));//add the parameters 
          request.addProperty("fileName3", cursorImage.getString(cursorImage.getColumnIndex("fileName3")));//add the parameters 

          request.addProperty("fileByte4", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE4")));//add the parameters 
          request.addProperty("fileName4", cursorImage.getString(cursorImage.getColumnIndex("fileName4")));//add the parameters 

          request.addProperty("fileByte5", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE5")));//add the parameters 
          request.addProperty("fileName5", cursorImage.getString(cursorImage.getColumnIndex("fileName5")));//add the parameters 

          request.addProperty("fileByte6", cursorImage.getString(cursorImage.getColumnIndex("SIGNATURE_CONSUMER")));//add the parameters 
          request.addProperty("fileName6", cursorImage.getString(cursorImage.getColumnIndex("fileName6")));//add the parameters 
          // request.addProperty("fileName", "123.jpeg");//add the parametershe parameters 
         } else { 
          request.setProperty(0, cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE1")));//add the parameters 
          request.setProperty(1, cursorImage.getString(cursorImage.getColumnIndex("fileName1")));//add the parameters 

          request.setProperty(0, cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE2")));//add the parameters 
          request.setProperty(1, cursorImage.getString(cursorImage.getColumnIndex("fileName2")));//add the parameters 

          request.setProperty(0, cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE3")));//add the parameters 
          request.setProperty(1, cursorImage.getString(cursorImage.getColumnIndex("fileName3")));//add the parameters 

          request.setProperty(0, cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE4")));//add the parameters 
          request.setProperty(1, cursorImage.getString(cursorImage.getColumnIndex("fileName4")));//add the parameters 

          request.setProperty(0, cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE5")));//add the parameters 
          request.setProperty(1, cursorImage.getString(cursorImage.getColumnIndex("fileName5")));//add the parameters 

          request.setProperty(0, cursorImage.getString(cursorImage.getColumnIndex("SIGNATURE_CONSUMER")));//add the parameters 
          request.setProperty(1, cursorImage.getString(cursorImage.getColumnIndex("fileName6")));//add the parameters 
         } 
         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);//set soap version 
         envelope.setOutputSoapObject(request); 
         envelope.dotNet = true; 
         try { 
          HttpTransportSE androidHttpTransport = new HttpTransportSE(url_getlistdata); 
          androidHttpTransport.call(soap_action_uploadImage, envelope); // this is the actual part that will call the webservice 
          //SoapPrimitive prim = (SoapPrimitive) envelope.getResponse(); // Get the SoapResult from the envelope body. 
          SoapObject response = (SoapObject) envelope.bodyIn; 

          //hideDialog(); 


         } catch (Exception e) { 
          e.printStackTrace(); 
          Log.d("myError -", String.valueOf(e)); 
         } 
         k++; 
        } while (cursorImage.moveToNext()); 

         /* object = new JSONObject(); 
         object.put("data", arr);*/ 
       } 
       cursorImage.close(); 


      } catch (Exception e) { 

      } 
      // } 

      return resultSaveAllData; 

     } 

     @Override 
     protected void onPostExecute(String result1) { 
      try { 

      } catch (Exception e) { 

      } 
      super.onPostExecute(result1); 

     } 
    } 
+0

Я. Я заменить свойство в другое условие, но в первый раз это проверить, если условие, но во второй раз, почему это проверить еще? я делаю что-то неправильно, если иначе, потому что он проверяет еще. –

+0

Так что же мне нужно менять? –

+0

Мое требование - предположить, что у меня три записи в моем sqlite, но единственная отправка первой записи на сервер. Почему он не отправляет все записи? –

ответ

0

Попробуйте это,

@Override 
protected String doInBackground(String... params) { 
    StringBuilder result = new StringBuilder(); 

    cursorImage = db.rawQuery("select * from FieldTestDataFinal Where isSend ='N'", null); 
    for (cursorImage.moveToFirst(); !cursorImage.isAfterLast(); cursorImage.moveToNext()) { 
     result.append(sendRequest(cursorImage)); 
    } 

    return result.toString(); 
} 

private String sendRequest(Cursor cursorImage){ 
    String responseDump = ""; 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);//set soap version 
    envelope.dotNet = true; 

    SoapObject request = new SoapObject(namespacegetlistdata, method_name__image); 

    request.addProperty("fileByte1", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE1")));//add the parameters 
    request.addProperty("fileName1", cursorImage.getString(cursorImage.getColumnIndex("fileName1")));//add the parameters 

    request.addProperty("fileByte2", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE2")));//add the parameters 
    request.addProperty("fileName2", cursorImage.getString(cursorImage.getColumnIndex("fileName2")));//add the parameters 

    request.addProperty("fileByte3", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE3")));//add the parameters 
    request.addProperty("fileName3", cursorImage.getString(cursorImage.getColumnIndex("fileName3")));//add the parameters 

    request.addProperty("fileByte4", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE4")));//add the parameters 
    request.addProperty("fileName4", cursorImage.getString(cursorImage.getColumnIndex("fileName4")));//add the parameters 

    request.addProperty("fileByte5", cursorImage.getString(cursorImage.getColumnIndex("METER_IMAGE5")));//add the parameters 
    request.addProperty("fileName5", cursorImage.getString(cursorImage.getColumnIndex("fileName5")));//add the parameters 

    request.addProperty("fileByte6", cursorImage.getString(cursorImage.getColumnIndex("SIGNATURE_CONSUMER")));//add the parameters 
    request.addProperty("fileName6", cursorImage.getString(cursorImage.getColumnIndex("fileName6")));//add the parameters 

    envelope.setOutputSoapObject(request); 

    HttpTransportSE androidHttpTransport = new HttpTransportSE(url_getlistdata); 
    androidHttpTransport.debug = true;  
    try { 
     androidHttpTransport.call(soap_action_uploadImage, envelope); 
     responseDump = transport.responseDump; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Log.d("myError -", String.valueOf(e)); 
    } 
    return responseDump; 
} 
+0

Спасибо Neeraj за ответ, но, к сожалению, он не работает. –

+0

В чем проблема? –

Смежные вопросы