日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发之Retrofit常见错误@FieldMap parameters can only be used with form encoding. (parameter #1)

發布時間:2023/12/15 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发之Retrofit常见错误@FieldMap parameters can only be used with form encoding. (parameter #1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

錯誤如下圖:

2020-05-18 21:24:07.135 23844-23844/com.example.mvptest E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.mvptest, PID: 23844java.lang.IllegalStateException: Could not execute method for android:onClickat android.view.View$DeclaredOnClickListener.onClick(View.java:4732)at android.view.View.performClick(View.java:5644)at android.view.View$PerformClick.run(View.java:22440)at android.os.Handler.handleCallback(Handler.java:751)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:6166)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)Caused by: java.lang.reflect.InvocationTargetExceptionat java.lang.reflect.Method.invoke(Native Method)at android.view.View$DeclaredOnClickListener.onClick(View.java:4727)at android.view.View.performClick(View.java:5644)?at android.view.View$PerformClick.run(View.java:22440)?at android.os.Handler.handleCallback(Handler.java:751)?at android.os.Handler.dispatchMessage(Handler.java:95)?at android.os.Looper.loop(Looper.java:154)?at android.app.ActivityThread.main(ActivityThread.java:6166)?at java.lang.reflect.Method.invoke(Native Method)?at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)?at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)?Caused by: java.lang.IllegalArgumentException: @FieldMap parameters can only be used with form encoding. (parameter #1)for method RequestApi.registerat retrofit2.Utils.methodError(Utils.java:53)at retrofit2.Utils.methodError(Utils.java:43)at retrofit2.Utils.parameterError(Utils.java:62)at retrofit2.RequestFactory$Builder.parseParameterAnnotation(RequestFactory.java:578)at retrofit2.RequestFactory$Builder.parseParameter(RequestFactory.java:306)at retrofit2.RequestFactory$Builder.build(RequestFactory.java:193)at retrofit2.RequestFactory.parseAnnotations(RequestFactory.java:67)at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:26)at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:192)at retrofit2.Retrofit$1.invoke(Retrofit.java:149)at java.lang.reflect.Proxy.invoke(Proxy.java:813)at $Proxy0.register(Unknown Source)at com.example.mvptest.model.HomeModel.requestData(HomeModel.java:50)at com.example.mvptest.presenter.HomePresenter.setShowData(HomePresenter.java:36)at com.example.mvptest.MainActivity.showResult(MainActivity.java:120)

我們在使用Retrofit進行POST請求的時候使用表單提交需要使用@FieldMap和@FormUrlEncoded注解結合使用不然會報錯如上,解決辦法上面日志也給出了

@FieldMap parameters can only be used with form encoding. (parameter #1)

意思是說需要一個from表單編碼加上即可

@FormUrlEncoded@POST("/user/register")Call<RegisterBean> register(@FieldMap Map<String, String> data);

?

總結

以上是生活随笔為你收集整理的Android开发之Retrofit常见错误@FieldMap parameters can only be used with form encoding. (parameter #1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。