java – 如何通过改造将Map参数或对象传递给POST请求?
发布时间:2020-12-14 16:25:53 所属栏目:Java 来源:网络整理
导读:我将Map参数或对象传递给Retrofit POST请求时遇到问题. 我遵循square,kdubb labs教程和this thread,我无法弄清楚. 我目前的代码工作原理: public interface FacebookUser { @FormUrlEncoded @POST("/user/login-facebook") void login( @Field("fb_access_t
我将Map参数或对象传递给Retrofit POST请求时遇到问题.
我遵循square,kdubb labs教程和this thread,我无法弄清楚. 我目前的代码工作原理: public interface FacebookUser { @FormUrlEncoded @POST("/user/login-facebook") void login( @Field("fb_access_token") String fbAccessToken,@Field("os") String os,@Field("device") String device,@Field("os_version") String osVersion,@Field("app_version") String appVersion,@Field("online") String online,Callback<FacebookLoginUserResponse> callback ); } 和代码: RestAdapter restAdapter = new RestAdapter.Builder() .setServer(requestMaker.getUrl()) .build(); FacebookUser facebookUser = restAdapter.create(FacebookUser.class); facebookUser.login(getFbAccessToken(),getString(R.string.config_os),Info.getAndroidId(getBaseContext()),Build.VERSION.RELEASE,Info.getAppVersionName(getBaseContext()),"" + 1,new Callback<FacebookLoginUserResponse>() { @Override public void success(FacebookLoginUserResponse facebookLoginUserResponse,Response response) { } @Override public void failure(RetrofitError retrofitError) { } }); 当我尝试使用这个接口时,我从服务器收到参数丢失: public interface FacebookUser { @POST("/user/login-facebook") void login( @Body Map<String,String> map,Callback<FacebookLoginUserResponse> callback ); } 和地图: HashMap<String,String> map = new HashMap<String,String>(); map.put("fb_access_token",getFbAccessToken()); map.put("os","android"); map.put("device",Info.getAndroidId(getBaseContext())); map.put("os_version",Build.VERSION.RELEASE); map.put("app_version",Info.getAppVersionName(getBaseContext())); map.put("online","" + 1); 问题: 解决方法
那么现在我们可以实现这个东西(1.5.0版).
@FormUrlEncoded @POST("/oauth/access_token") void getToken( @FieldMap Map<String,String> params,Callback<FacebookLoginUserResponse> callback ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |