ローカルのギャラリー画像をapiに送信します。私はその画像をマルチパート型のファイルとして追加しました。また、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();
}
インターフェイスメソッドのAPI側で
/**
* @param multipartTypedOutput
* @param callback
*/
@FormUrlEncoded
@POST(Constants.STORE_CONTEST)
void launchApi(@Body MultipartTypedOutput multipartTypedOutput , Callback<LaunchResponse> callback);
、彼らは文字列としてすべてのものを得ています。だからそれはパラメータの種類やコードの問題に依存するかどうか?
結果を得るにはどうすればよいですか?
私は間違っていると誰かが私に説明することができます。
ですから、各パラメータを1つずつ送信する必要があります。このMultipartのようなイメージ値を送るための例を教えてください。 MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput(); multipartTypedOutput.addPart(Constants.LOGO_IMAGE、新しいTypedFile( "image/*"、新しいファイル( "+ encodedByte))); –
'Uri pics = Uri.fromFile(新しいファイル(最終パス)); ビットマップbitmap1 = decodeBitmap(pics、finalPath); ByteArrayOutputStream byteArrayOutputStream1 =新しい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