将类对象传递给android中的MultiPart实体

时间:2014-12-04 14:24:16

标签: android asp.net-web-api multipartentity

我必须处理一个应用程序,我需要使用Multipart Entity和文件将类对象作为参数发送。我已经检查过Multipart addpart方法没有接受一个Object来发布到Web Api.Below是我试过的代码。关于如何传递对象的任何建议都会很棒。

        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();
        }

Web Api是在Dotnet中开发的,这就是Windows移动应用程序将参数发送为

的原因
 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");

1 个答案:

答案 0 :(得分:2)

恕我直言,你应该以 JSON XML 等文字格式序列化你的对象,然后使用StringBody发送它