2013-04-10 5 views
1

Im пытается отправить изображение службе REST с помощью Sending images using Http Post. Сообщение закрыто информативным, но я получаю компиляционную ошибку в FileBody bin1 = new FileBody(file);.Ошибка в AsynTask по типу файла

Ошибка: The constructor FileBody(File[]) is undefined

Что странно, потому что я определить его, почему это happenig и Что решение фиксируя его? Любая помощь очень ценится.

Код Источник:

private class ImageUpload extends AsyncTask<File, Void, String> { 

     @Override 
     protected void onPreExecute() { 
      if (checkNullState() == false) { 
       showMyDialog(); 
      } 
     } 

     protected String doInBackground(File... file) { 

      String imageDescriptionTemp = "Photo Temp Description."; 
      String PostRequestUri = "https://demo.relocationmw.com/ws_docmgmt/Service1.svc"; 
      HttpClient client = new DefaultHttpClient(); 
      HttpPost post = new HttpPost(PostRequestUri); 
      FileBody bin1 = new FileBody(file); 
      MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
      entity.addPart("Image", bin1); 
      post.setEntity(entity); 
      HttpResponse response = client.execute(post); 
      resEntity = response.getEntity(); 
      final String response_string = EntityUtils.toString(resEntity); 
      if(resEntity != null){ 
      Log.i("RESPONSE", response_string); 
      }else{ 
      return null;} 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      if (checkNullState() == true) { 
       dismissMyDialog(); 
      } 
      // add location once we have that figured out. 
      Toast.makeText(HomeActivity.this, "Image can be viewed {Location}", 
        Toast.LENGTH_LONG).show(); 
     } 

     protected void onProgressUpdate(Map... values) { 
     } 

ответ

1

Я думаю, что вы хотите

FileBody bin1 = new FileBody(file[0]); 

beacuse doInBackground использует varargs. Таким образом, следующая строка кода:

doInBackground(Params... params) 

эквивалентно

doInBackground(Params[] params) 

и когда вы

FileBody bin1 = new FileBody(file) 

file массив (И я предполагаю, что вы определили конструктор как это FileBody(File file))

+0

Я получаю эту ошибку: Описание \t Ресурс \t \t Путь Расположение \t Тип Синтаксическая ошибка, вставить "}", чтобы завершить ClassBody \t \t HomeActivity.java/TestingApp/SRC/COM/testingapp \t строки 269 \t Java Проблема – Keeano

+0

я забыл, чтобы обернуть его с Try/Catch. Виноват. Спасибо за помощь! – Keeano

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