【问题标题】:Am I submitting this POST body correctly using retrofit?我是否使用改造正确提交了这个 POST 正文?
【发布时间】:2016-06-05 23:34:03
【问题描述】:

我正在尝试使用其中一个端点在单个 POST 正文中接受多个请求的 API,如下所示:

body:
{
  "<requestId>": {
    "actionFoo": "objId"
  },
  "<requestId>": {
    "actionBar": "objId"
  }
}

requestIds 是在客户端生成的唯一字符串。我正在为这些值生成 UUID。

所以我尝试使用如下定义的 Api 来使用 Retrofit:

首先我定义了一个“ActionCommand”对象:

public class ActionCommand {

private String actionFoo;
private String actionBar;

}

并将其输入到 Hashmap 映射中。我使用了这样定义的 api:

@POST("/path/{someObjectId}/commands")
Map<String,ActionResponse> sendActions(@Path("someObjectId")String objectId, @Body Map<String, ActionCommand> actionMap);

后端肯定会正确获取 objectId,但不是地图中的任何操作。我不确定我应该如何发送这些参数

谢谢,

【问题讨论】:

  • 试试公开属性是否有帮助。还是有他们的公共吸气剂?

标签: java android retrofit


【解决方案1】:

像这样改变你的 pojo 类:

package com.example;

    import javax.annotation.Generated;
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;

    @Generated("org.jsonschema2pojo")
    public class MyPojo {

    @SerializedName("<requestId>")
    @Expose
    private RequestId requestId;

    /**
    * 
    * @return
    * The requestId
    */
    public RequestId getRequestId() {
    return requestId;
    }

    /**
    * 
    * @param requestId
    * The <requestId>
    */
    public void setRequestId(RequestId requestId) {
    this.requestId = requestId;
    }

    }

你的第二个 Pojo 会是这样的;

package com.example;

import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

@Generated("org.jsonschema2pojo")
public class RequestId {

@SerializedName("actionBar")
@Expose
private String actionBar;

/**
* 
* @return
* The actionBar
*/
public String getActionBar() {
return actionBar;
}

/**
* 
* @param actionBar
* The actionBar
*/
public void setActionBar(String actionBar) {
this.actionBar = actionBar;
}

}

【讨论】:

    【解决方案2】:

    我的改造设置是正确的。问题是我遗漏了“application/json”标头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多