在后台上传过程中访问其他http响应的问题



我正在上传一些文件,使用Apache库通过多部分实体构建器在服务器上上传多个文件。它上传得很完美。但与此同时,当我在上传过程中访问另一个http请求时,服务器会阻止我的所有其他http请求,一旦上传完成,就会给我其他http响应。我不明白怎么了?请建议我解决这个问题。

这里我使用的代码上传:

@Override
            protected String doInBackground(String... urls) {
                String response1 = "";

                Prefs = context.getSharedPreferences(prefname, Context.MODE_PRIVATE);
                String memberid=Prefs.getString(ImageConstant.MEMBERID, "");
                try {
                       String url=ImageConstant.BASEURL+"image_fileupload.php";
                       Log.v(TAG, "url is: "+url);
                       HttpClient client = new DefaultHttpClient();
                        HttpPost post = new HttpPost(url);
                        MultipartEntityBuilder builder = MultipartEntityBuilder.create();        
                        builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

                        for (int i = 1; i <= dataT.size(); i++) {
                            CustomGallery gallery=dataT.get(i-1);
                            String filename=gallery.sdcardPath;
                            Log.v(TAG, "file name: "+filename);
                            File file = new File(filename);
                            FileBody fb = new FileBody(file);
                            builder.addPart("file"+i, fb);

                        }

                        builder.addTextBody("member_id", memberid);
                        builder.addTextBody("count", String.valueOf(dataT.size()));
                        final HttpEntity yourEntity = builder.build();
                        CustomMultiPartEntity entity=new CustomMultiPartEntity(yourEntity, new ProgressListener() {
                            @Override
                            public void transferred(long num) {
                                publishProgress((int) ((num / (float) totalsizeimage) * 100));
                                //Log.v(TAG, "publish progress :"+totalsizeimage);
                                 ImageUtil.galleryLog(TAG, "publish progress :"+totalsizeimage);
                            }

                        });
                        totalsizeimage = entity.getContentLength();
                       // Log.v(TAG, "total size is: "+totalsize);
                        ImageUtil.galleryLog(TAG, "total size is: "+totalsize);
                        post.setEntity(entity);
                        HttpResponse response = client.execute(post);        
                        response1= getContent(response);
                    // response=postFile(dataT, memberid);
                    Log.v(TAG, "response is: "+ response1);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
             return response1;
        }

使用THREAD_POOL_EXECUTOR 执行您的asyntask

.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

最新更新