이미지를 업로드하고 Retrofit 2
을 사용하여 게시 방법으로 String
데이터를 보내야합니다. 나는 그렇게하기 위해 흐르는 방법을 사용하고 있습니다.Retrofit 2.0에서 파일 및 문자열 값 작성 오류가 발생했습니다
@Multipart
@FormUrlEncoded
@POST("signup/step3")
Call<BasicModel> completeRegistration(
/*All Basic Parameter*/
@Field("mobile_no") String mobileNo,
/*For User Image*/
@Part MultipartBody.Part photoFile
);
하지만 다음 오류가 발생합니다.
java.lang.IllegalArgumentException: Only one encoding annotation is allowed.
for method AllNetworkCalls.completeRegistration
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:695)
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:686)
at retrofit2.ServiceMethod$Builder.parseMethodAnnotation(ServiceMethod.java:266)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:169)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:166)
at retrofit2.Retrofit$1.invoke(Retrofit.java:145)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy1.completeRegistration(Unknown Source)
at com.sslwireless.app.Activities.SignUp.RegistrationActivity_5.completeRegistration(RegistrationActivity_5.java:244)
at com.sslwireless.app.Activities.SignUp.RegistrationActivity_5.access$1100(RegistrationActivity_5.java:51)
at com.sslwireless.app.Activities.SignUp.RegistrationActivity_5$5.onClick(RegistrationActivity_5.java:132)
at android.view.View.performClick(View.java:4856)
at android.view.View$PerformClick.run(View.java:19956)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
내가 할 수있는 다른 방법이 있습니까?
난 당신이 사용할 수있는 것 같아요'@ FormUrlEncoded'와'Multipart' @ 함께 같은 요청에 대해. FromUrlEncoded를 제거하려고하면 – MBH
이'@ FromUrlEncoded'을 제거한 다음'@ Field'에 대한 오류가 발생합니다. –
포스트 요청에 대해'@ Field' 대신'@ Body'를 사용해야한다고 생각합니다. – MBH