Android Retrofitフレームワークに複数の画像をアップロードするソリューション
2289 ワード
シナリオ:
解決策は、Retrofitを使用したMulipartypedOutput
インタフェースは以下のように宣言されています.この場合、@FormUrlEncodedと@Multipart注釈は使用しないでください.
MulipartTypedOutputパラメータのアセンブリ例コードは次のとおりです.
説明:
言いたいことがある0-beta 1以降MultipartTypedOutputは使用せず@PartMapを使用
Updates
MultipartTypedOutput no longer exists in Retrofit 2.0.0-beta1
For those who want to upload multiple images now can use with @PartMap, reference link javadoc
参考出典:
[1] http://stackoverflow.com/questions/31212513/android-retrofit-post-request-with-json-payload-and-images-attached
[2] http://stackoverflow.com/questions/25249042/retrofit-multiple-images-attached-in-one-multipart-request/25260556#25260556
解決策は、Retrofitを使用したMulipartypedOutput
インタフェースは以下のように宣言されています.この場合、@FormUrlEncodedと@Multipart注釈は使用しないでください.
@POST(PATH + "submitOrderExt.do")
public void submitOrderMul(@Body MultipartTypedOutput multipartTypedOutput,
BaseCallback baseCallback);
MulipartTypedOutputパラメータのアセンブリ例コードは次のとおりです.
/// demo
MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput();
multipartTypedOutput.addPart("stID", new TypedString(stID));
multipartTypedOutput.addPart("stName", new TypedString(stName));
multipartTypedOutput.addPart("uID", new TypedString(uID));
multipartTypedOutput.addPart("uLoginMail", new TypedString(uLoginMail));
multipartTypedOutput.addPart("areaID", new TypedString(areaID));
multipartTypedOutput.addPart("areaName", new TypedString(areaName));
multipartTypedOutput.addPart("oUserName", new TypedString(oUserName));
multipartTypedOutput.addPart("oUserTel", new TypedString(oUserTel));
multipartTypedOutput.addPart("oAddress", new TypedString(oAddress));
multipartTypedOutput.addPart("oRepairContent", new TypedString(oRepairContent));
multipartTypedOutput.addPart("oTimeStart", new TypedString(mTimeStart));
multipartTypedOutput.addPart("oTimeEnd", new TypedString(mTimeEnd));
for (Map.Entry entry : oSceneImgUriMap.entrySet()) {
multipartTypedOutput.addPart("oSceneImg", new TypedFile("image/jpeg", new File(GetPathFromUri4kitkat.getPath(OrderActivity.this, entry.getValue()))));
}
if(null != voiceFile){
multipartTypedOutput.addPart("oVoice", voiceFile);
}
説明:
言いたいことがある0-beta 1以降MultipartTypedOutputは使用せず@PartMapを使用
Updates
MultipartTypedOutput no longer exists in Retrofit 2.0.0-beta1
For those who want to upload multiple images now can use with @PartMap, reference link javadoc
参考出典:
[1] http://stackoverflow.com/questions/31212513/android-retrofit-post-request-with-json-payload-and-images-attached
[2] http://stackoverflow.com/questions/25249042/retrofit-multiple-images-attached-in-one-multipart-request/25260556#25260556