我必须在一个应用程序上工作,我需要使用多部分实体将类对象作为参数以及文件发送。我已经检查了多部分 addpart 方法不接受要发布到 Web API 的对象。以下是我尝试过的代码。关于如何传递对象的任何建议都会很棒。
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");
恕
我直言,您应该以 JSON 或 XML 等文本格式序列化对象,然后使用StringBody
发送它。