【发布时间】:2016-08-26 21:35:17
【问题描述】:
我想将本地图库图片发送到 api。我已将图像添加为多部分类型文件,并且 iam 还在与多部分类型字符串相同的 api 中发送一些字符串数据。
所以当我点击 api 时,我得到了这个响应。
@Body 参数不能与表单或多部分编码一起使用。 (参数#1)
我的代码:
//Add the values into Multipart.
MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput();
//Add the ACCESS_TOKEN
//MULTIPLEIMAGE
multipartTypedOutput.addPart(Constants.LOGO_IMAGE, new TypedFile("image/*", new File("" + encodedByte)));
//Add the ACCESS_TOKEN
multipartTypedOutput.addPart(Constants.COMPANY_NAME, new TypedString(companyName));
multipartTypedOutput.addPart(Constants.TAGS, new TypedString(projectTags));
multipartTypedOutput.addPart(Constants.PROJECT_DESC, new TypedString(projectDesc));
multipartTypedOutput.addPart(Constants.CATEGORY, new TypedString(categories));
multipartTypedOutput.addPart(Constants.STYLE, new TypedString(launchStyle));
multipartTypedOutput.addPart(Constants.COLOR_CODE, new TypedString(colorCode));
multipartTypedOutput.addPart(Constants.CONTEST_PACK, new TypedString(contestPackage));
multipartTypedOutput.addPart(Constants.PAYMENT_GATE, new TypedString(paymentGateway));
multipartTypedOutput.addPart(Constants.USERID, new TypedString(userId));
if (connectionDetector.isOnline()) {
apiManager.getApiService().launchApi(multipartTypedOutput, new LaunchCallback(LaunchStep4Fragment.this));
} else {
Toast.makeText(getActivity(), getString(R.string.check_internet), Toast.LENGTH_SHORT).show();
}
接口方法
/**
* @param multipartTypedOutput
* @param callback
*/
@FormUrlEncoded
@POST(Constants.STORE_CONTEST)
void launchApi(@Body MultipartTypedOutput multipartTypedOutput , Callback<LaunchResponse> callback);
在 api 方面,他们将所有内容都作为字符串获取。那么是看参数类型还是代码问题呢?
我应该改变什么才能得到结果?
如果我做错了什么,请有人解释一下。
【问题讨论】: