我必须将pojo发布到仅通过表单数据( MediaType.APPLICATION_FORM_URLENCODED )接受参数的服务器。我知道 jersey 客户端可以将对象转换为 xml、json 和其他类型,但尝试转换为 APPLICATION_FORM_URLENCODED 会出现异常,表明指定类型的正文编写器不可用。
有没有办法将对象序列化为 application_form_urlencoded MultivaluedMap,或者我必须手动逐个属性来形成结果 MultivaluedMap?根据问题上下文,创建适配器以使用球衣序列化在我看来并不是合适的解决方案。
POST 对象
@XmlRootElement
public class POSTableObject {
private int a;
private String b;
public int getA() { return a; }
public void setA(int a) { this.a = a; }
public String getB() { return b; }
public void setB(String b) { this.b = b; }
}
使用 Jersey 客户端发布操作
ClientResponse response = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, postableObject);