如何从 WCF REST Web 服务中的改造中获取来自@Part List<MultipartBody.Part> 发布请求的文件?
Posted
技术标签:
【中文标题】如何从 WCF REST Web 服务中的改造中获取来自@Part List<MultipartBody.Part> 发布请求的文件?【英文标题】:How to get files come from @Part List<MultipartBody.Part> post request from retrofit in WCF rest web service? 【发布时间】:2019-05-31 17:55:29 【问题描述】:我正在尝试将动态数量的图像发送到 WCF Web 服务。发送这个请求的方法是这样的:
@Multipart
@POST
Call<ResponseBody> sendImages(@Part List<MultipartBody.Part> img, @Url String url,@Part("Content-Type") String contentType);
这是发送图像的方法的实现:
public void sendImages(List<EvaluationDetail> evaluationDetails, int evalId, final ResultCallBack resultCallBack)
ApiService apiService=AppSingleton.getInstance(context).getApiService();
String Url=ApiService.Post_images+"/"+evalId+"/";
String questionIds="";
List<MultipartBody.Part> parts=new ArrayList<>();
for(int i=0;i<evaluationDetails.size();i++)
if(evaluationDetails.get(i).getImage()!=null)
File file = new File(evaluationDetails.get(i).getImage());
if (file != null)
String partName = "img" + "_" + evalId + "_" + evaluationDetails.get(i).getQuestionID();
RequestBody requestFile = RequestBody.create(null,file);
parts.add(MultipartBody.Part.createFormData(partName, file.getName(), requestFile));
questionIds=questionIds+String.valueOf(evaluationDetails.get(i).getQuestionID());
if(questionIds!=null)
apiService.sendImages(parts,Url+questionIds,"multipart/form-data").enqueue(new Callback<ResponseBody>()
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response)
resultCallBack.onGetResult(null);
@Override
public void onFailure(Call<ResponseBody> call, Throwable t)
resultCallBack.onFailedGet();
);
我不知道 wcf Web 服务中的函数签名会是什么样子。我用谷歌搜索,但我找不到解决方案。 请帮帮我。
【问题讨论】:
【参考方案1】:你为什么设置
@Part("Content-Type") String contentType)
动态的?
注意:-@Multipart
注释是 android 中的内容类型,它支持与 multipart/form-data(for web) 相同的属性。
解决方案:- 从您的接口方法中删除 @Part("Content-Type") String contentType)
。
【讨论】:
谢谢我删除它。但我的主要问题是在服务器端,我不知道如何在 wcf 中获取这些 List以上是关于如何从 WCF REST Web 服务中的改造中获取来自@Part List<MultipartBody.Part> 发布请求的文件?的主要内容,如果未能解决你的问题,请参考以下文章
使用 KissXML 处理 wcf Rest Web 服务 - 我应该如何处理命名空间问题