当前位置: 首页 > 面试题库 >

如何通过地图 参数或对象以通过翻新发布请求?

爱琪
2023-03-14
问题内容

将Map参数或对象传递给Retrofit POST请求时遇到问题。

我遵循square,kdubb
labs
教程和该主题,但我无法弄清楚。

我当前的代码有效:

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


 类似资料:
  • 问题内容: 我有一些JavaScript代码可将图像上传到服务器。下面是可以正常工作的ajax调用。 我现在需要将图像上传为base64编码,例如 但这是行不通的,即服务器无法识别我发送和抱怨的数据。 有谁知道在AJAX调用中发送base64编码数据的正确格式是什么? 问题答案: 感谢所有帮助我前进的答案。 我也已在 https://social.msdn.microsoft.com/Forums

  • 问题内容: 大家好,我正尝试通过websockets发送javascript对象: faye-websockets文档说: send(message) 接受字符串或缓冲区,并通过连接向另一对等方发送文本或二进制消息。 服务器端我正在使用node和faye。 客户端: 我的错误是什么?谢谢 问题答案: WebSockets支持发送和接收:字符串,类型数组(ArrayBuffer)和Blob。发送之前

  • 问题内容: 我正在寻找一种通过JSON将对象数组发布到MVC3的解决方案。 我正在处理的示例代码:http : //weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net- mvc-3-preview-1.aspx JS: ListViewModel.cs: ItemViewModel.cs: ListController.cs

  • 问题内容: 我定义一个类,然后设置该类类型的对象。我想将此对象透明地发送到在另一台计算机上运行的另一个Java应用程序。什么是实现这一目标的最佳技术? 问题答案: 您可以使用Java API创建对象流并发送任何可序列化的对象。但您必须注意,这些内容不会通过网络进行加密: 在发送方方面: 在接收端:

  • 我正在尝试将数据发布到 GA 中,但我收到索引错误 连接正在工作,因为我得到响应 200,但 for 循环似乎有问题,它从我的数据帧中发布所有行。有人可以帮助我吗?谢谢! 错误: IndexingError Traceback(最近的调用最后)在4'pa':"购买",5'tid':"xxx", ---- ~\路径\lib\site-packages\pandas\core\indexing.py

  • 我有个大麻烦。我必须将应用程序中的一些参数发布到URL。但是,当我试图在WebView对象中执行此操作时,它会向我报告一个异常,该异常表示“不受信任的证书”(该异常由WebViewClient onReceivedSslError()的重写中的方法报告)。如何才能与服务器正确握手?你能给我一些提示吗?我快疯了... 真的,真的谢谢... 编辑:这是我定义webview的方式 这就是我在WebVie