java – 如何通过改造将Map参数或对象传递给POST请求?

我将Map参数或对象传递给Retrofit POST请求时遇到问题. 我遵循square,kdubb labs教程和this thread,我无法弄清楚. 我目前的代码工作原理: public interface FacebookUser { @FormUrlEncoded @POST(/user/login-facebook) void login(

我将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
);

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部