gpt4 book ai didi

java - 使用 APPLICATION_FORM_URLENCODED 媒体类型与 Jersey 客户端进行 POST

转载 作者:搜寻专家 更新时间:2023-11-01 02:28:40 26 4
gpt4 key购买 nike

我必须将 pojo 发布到仅通过表单数据接受参数的服务器 (MediaType.APPLICATION_FORM_URLENCODED)。我知道 Jersey 客户端可以将对象转换为 xml、json 和其他类型,但尝试转换为 APPLICATION_FORM_URLENCODED 时会出现异常,显示指定类型的正文编写器不可用。

有没有办法将对象序列化为 application_form_urlencoded MultivaluedMap,或者我必须逐个属性手动获取一个属性以形成结果 MultivaluedMap?根据问题上下文,创建适配器以使用 Jersey 序列化在我看来并不是合适的解决方案。

反对发布

@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 客户端的 Post Action

ClientResponse response = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, postableObject);

最佳答案

JAX-RS 提供者只需要提供到 application/x-www-form-urlencoded 的映射对于 MultivaluedMap<String,String> .而且我很确定开箱即用的 Jersey 不提供来自 application/x-www-form-urlencoded 的额外映射器到常规的 POJO。您可以编写自己的客户端提供程序,但根据您需要执行此操作的频率,您自己将 POJO 字段映射到 URL 字段可能更简单。

关于java - 使用 APPLICATION_FORM_URLENCODED 媒体类型与 Jersey 客户端进行 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com