1

私のSDカードにはzipファイルがあります。サイズは8-9 MBです。このライブラリを使ってデータを送信しています。大きなデータをAndroidのサーバーに送信する最も良い方法

https://github.com/loopj/android-async-http

、これは私の源である

private void sendSubmitRequest(File file) 
{ 
    AsyncHttpClient client = new AsyncHttpClient(); 

    RequestParams params = new RequestParams(); 
    showpDialog("loading"); 

    try 
    { 

     params.put("vin", vinNumber.getText().toString()); 
     params.put("polygon", polygonAdapter.getItem(spinnerPosition).getId()+""); 


     params.put("scanner_key", vinScannerModel.getSecretKey()); 
     params.put("status", status); 
     params.put("user", vinScannerModel.getId()+""); 

     InputStream inputStream = null; 
     inputStream = new FileInputStream(file.getAbsolutePath()); 
     byte[] buffer = new byte[8192]; 
     int bytesRead; 
     ByteArrayOutputStream output = new ByteArrayOutputStream(); 
     Base64OutputStream output64 = new Base64OutputStream(output, Base64.DEFAULT); 
     try { 
      while ((bytesRead = inputStream.read(buffer)) != -1) { 
       output64.write(buffer, 0, bytesRead); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     output64.close(); 

     String attachedFile = output.toString(); 


     params.put("photos", attachedFile); 

    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 


    client.post(ServerUtil.addVin, params, new TextHttpResponseHandler() { 
     @Override 
     public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { 

      showOneItemDialog(throwable.toString(),false); 
      hidepDialog(); 


      Log.d("server status",responseString+""); 
     } 

     @Override 
     public void onSuccess(int statusCode, Header[] headers, String responseString) { 
      Log.d("server status",responseString+""); 
      try { 
       hidepDialog(); 
       JSONObject mainJsonObject = new JSONObject(responseString.toString()); 
       boolean status=mainJsonObject.getBoolean("status"); 
       String desc=mainJsonObject.getString("desc"); 
       if(desc!=null) 
        showOneItemDialog(desc,status); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
       showOneItemDialog(e.toString(),false); 
      } 
     } 
    }); 




} 

私のコードの完全な作業が、私は私の解決策が完了したかどうかを確認したいですか?

答えて

2

これは、アクティビティ/ UIの一部ではなく、アップロードサービスで実行したいと考えています。ユーザーがアクティビティを強制終了した場合(またはメモリの負荷のために削除された場合)、アップロードが失われます。

私は、この特定のライブラリを使用していないが、このようなものは、あなたが有用見つける何かのように思えるし、一目でそれが機能1のほとんどを持って示し、一般的に必要である: https://github.com/gotev/android-upload-service

+0

おかげであなたの注意を.Howアップロードサービスでリクエストパラメータを使用できますか?どのように私はポストメソッドこのアップロードサービスを送信することができますか? – BekaKK

+0

カスタムのOkHttpクライアントを使用することができます。これにより、必要なヘッダなどをすべて設定できるようになります。私が言ったように、私は以前これを使っていません。 – wblaschko

+0

ありがとうございます。明日テストします。最終結果をお伝えします – BekaKK

関連する問題