2014-12-04 2 views
2

Мне нужно работать с приложением, в котором мне нужно отправить объект класса в качестве параметра с помощью Multipart Entity вместе с файлом. Я проверил, что метод добавления многопоточности не принимает объект для публикации в Web Api.Below - это код, который я пробовал. Любые предложения о том, как передать объект, будут отличными.Передать объект класса объекту MultiPart Entity в android

 HttpPost post = BaseActivity.getHttpPost("MyURL");   

     MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,"",Charset.defaultCharset()); 

     try { 
      ServiceJobFileModel sjfm = new ServiceJobFileModel(); 

      sjfm.setFileExtension(myfileextension); 
      sjfm.setCapturedDate(captdate); 
      sjfm.setFileName("/pathtofile/filename.extension"); 

      File f = new File(sjmf.getFileName()); 

      entity.addPart("file", new FileBody(f)); 
      entity.addPart("serviceJobFileModel", sjfm); // Compiler Error 

      post.addHeader("Accept-Encoding", "gzip, deflate"); 
      post.setEntity(entity); 

     } catch (UnsupportedEncodingException e) { 
      Log.v("encoding exception","E::: "+e); 
      e.printStackTrace(); 
     } 

Веб Api разработан в Dotnet именно поэтому окна мобильное приложение посылает параметры, как

var parameters = new ServiceJobFileModel() 
      { 
       FileExtension = serviceJobFileModel.FileExtension, 
       CapturedDate = serviceJobFileModel.CapturedDate,      
       ServiceJobNumber = serviceJobFileModel.ServiceJobNumber 
      }; 

content.Add(new StreamContent(filestream), "file", Path.GetFileName(fileName)); 
content.Add(new ObjectContent<ServiceJobFileModel>(parameters, new JsonMediaTypeFormatter()), "serviceJobFileModel"); 

ответ

2

ИМХО вы должны сериализации ваш объект в текстовом формате, как JSON или XML, а затем используйте StringBody, чтобы отправить его.

+0

Спасибо. Я дам ему попробовать. –

+0

Это Работало.Спасибо. –

+0

@hemanthkumar Рад, что он работает. :) – Pragmateek