0

私は Android 開発者で、サーバーへのアプリケーション リクエストでファイルをダウンロードします

Log.d("SBP", f_url[0]);
URL url = new URL(f_url[0]);
URLConnection conection = url.openConnection();

デバッグでは1つのリクエストを表示しますが、サーバーでaccess.logを開くと、2つ以上の同じリクエストが表示されます! :|

しかし、なぜ???

これは私のnginx.configです

user  nginx;
worker_processes  1;
worker_rlimit_nofile 20000;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
 worker_connections  1024;
 }


http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  /var/log/nginx/access.log  main;

 sendfile        on;
 #tcp_nopush     on;

 keepalive_timeout  65;

 #gzip  on;

 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;
 }

そしてそれは私のサイトの設定です:

    server {
    server_name MYSITE;
    access_log /srv/www/MYSITE/logs/access.log;
    error_log /srv/www/MYSITE/logs/error.log;
    root /srv/www/MYSITE/public;

    client_max_body_size 20m;
    client_body_buffer_size 128k;

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
}

    location / {
        index index.html index.htm index.php;
    }

location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
}

    location ~* \.php$ {
       # include /etc/nginx/fastcgi_params;
        server_tokens off;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
}
4

1 に答える 1

0

あなたの問題は Volley が原因RetryPolicyです。それを修正するには(あちこちで見られるよう)、再試行を無効にする必要があります

myRequest.setRetryPolicy(new DefaultRetryPolicy(
    DefaultRetryPolicy.DEFAULT_TIMEOUT_MS,
    0,
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

またはタイムアウトを増やします (この例ではデフォルトの 2.5 秒ではなく 10 秒):

myRequest.setRetryPolicy(new DefaultRetryPolicy(
    DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 4,
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

RetryPolicy作品がそこにある方法についての詳細は、ここで見つけることができます。

于 2015-02-12T08:21:16.550 に答える