我正在尝试将动态数量的图像发送到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服务中功能的签名如何。我用谷歌搜索,但找不到解决方案。 请帮助我。
答案 0 :(得分:0)
为什么设置
@Part("Content-Type") String contentType)
动态地?
注意:-@Multipart
注释是android中的一种内容类型,它支持与multipart / form-data(用于网络)相同的属性。
解决方案:-从界面方法中删除@Part("Content-Type") String contentType)
。