2016-09-15 10 views
1

私のアプリからサーバーに画像をアップロードします。 ftp接続が不可能なので、私はPOSTで要求として画像をアップロードしたいと思います。写真をVol64でBase64文字列としてアップロードします。警告:LogSlowRequest

私はアプリにvolleyを使用しています。

D /バレーボール::[50697] BasicNetwork.logSlowRequests: リクエストに対するHTTPレスポンス= < [] http://domain.com/api.php 0x3ce314bb NORMAL 1私はBase64でStringに写真を変換し、私のサーバーに送信すると私は警告を取得します> [寿命= 5264]、[サイズ= 2]、[RC = 200]、[retryCount値= 0]これは私のアップロードのクラスである

:テスト用

public class Upload { 

    private Context context; 

    public Upload(Context _context){ 
     context = _context; 
    } 

    public void upload(final File file){ 
     RequestQueue queue = Volley.newRequestQueue(context); 
     StringRequest sr = new StringRequest(Request.Method.POST,"http://domain.com/api.php", new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       Log.d("DEBUG","RESPONSE: " + response); 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) {} 
     }){ 
      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<>(); 
       params.put("a","text"); 
       params.put("b",convertPic(file.getPath())); 
       params.put("c","text"); 
       return params; 
      } 
     }; 
     queue.add(sr); 
    } 

    private String convertPic(String path) 
    { 
     Bitmap bitmap = BitmapFactory.decodeFile(path); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.PNG, 90, baos); 
     byte[] b = baos.toByteArray(); 
     return Base64.encodeToString(b, Base64.DEFAULT); 
    } 

    private String convertString(String s){ 
     return Base64.encodeToString((s).getBytes(),Base64.NO_WRAP); 
    } 
} 

、私のPHPスクリプトちょうど$ _をチェックしてくださいPOSTフィールド:

<?php 
    header('content-type: text/plain; charset=utf-8'); 
    header("access-control-allow-origin: *"); 

    error_reporting(E_ALL); 
    ini_set('display_errors', 1); 

    $post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); 

    if(isset($post['a']) && $post['a'] != "" && isset($post['b']) && $post['b'] != "" && isset($post['c']) && $post['c'] != ""){ 
     echo 'OK'; 
    } 

答えて

0

リトライ追加:

sr.setRetryPolicy(new DefaultRetryPolicy(0,0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

メイク:0

+0

アップロード作品、$ _POSTフィールドのそれぞれのチェックにDefaultRetryPolicy.DEFAULT_MAX_RETRIES(PHPのコードを参照してください)。しかし、私はなぜこの警告を受けるのか分からない。 – Laire

関連する問題