Я хочу отправить изображение локальной галереи в api. Я добавил, что изображения в виде multipart typedfile и iam также отправляют некоторые строковые данные в один и тот же api, как многострочная строка с типом.Параметры дооснащения - @Body нельзя использовать с формой или многочастным кодированием. (параметр # 1)
Так что, когда я ударил 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);
В стороне апи, они получают все в виде строки. Так зависит ли это от типа параметра или проблемы с кодом?
Что я должен изменить, чтобы получить результат?
Пожалуйста, может кто-нибудь объяснить мне, если я сделаю что-то неправильно.
Итак, я должен отправлять каждый параметр по одному. вы можете дать мне пример для отправки значения изображения, подобного этому многопунктовому. MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput(); multipartTypedOutput.addPart (Constants.LOGO_IMAGE, новый TypedFile ("image/*", новый файл ("" + encodedByte))); –
'Uri pics = Uri.fromFile (новый файл (finalPath)); Bitmap bitmap1 = decodeBitmap (pics, finalPath); ByteArrayOutputStream byteArrayOutputStream1 = new ByteArrayOutputStream(); bitmap1.compress (Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream1); RequestBody fbody = RequestBody.create (MediaType.parse ("multipart/form-data"), byteArrayOutputStream1.toByteArray()); RequestBody name = RequestBody.create (MediaType.parse ("text/plain"), название компании); ' – yozzy