当前位置: 首页 > 知识库问答 >
问题:

使用APPLICATION_FORM_URLENCODED mediatype与Jersey客户端POST

温镜
2023-03-14

我必须向只通过表单数据(Mediatype.application_form_urlencoded)接受参数的服务器发布pojo。我知道jersey client可以将对象转换为xml、json和其他类型,但试图转换为APPLICATION_FORM_URLENCODED会出现异常,显示指定类型的body writer不可用。

是否有方法将对象序列化为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操作

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

共有1个答案

景河
2023-03-14

JAX-RS提供程序只需要为multivaluedmap 提供到application/x-www-form-urlencode的映射。我非常肯定,开箱即用的Jersey不会提供从application/x-www-form-urlencoded到常规POJO的额外映射器。您可以编写自己的客户端提供程序,但根据需要这样做的频率,只需将POJO字段映射到URL字段可能更简单。

 类似资料:
  • 问题内容: 如何使用Jersey客户端API将GET请求发送到运行HTTPS协议的服务器。我可以使用任何示例代码吗? 问题答案: 这样构建您的客户 从此博客文章中窃取了更多详细信息:http : //blogs.oracle.com/enterprisetechtips/entry/consumption_restful_web_services_with 有关设置证书的信息,请参见以下已很好回答

  • 我正在尝试创建RESTful web服务,但无法使删除生效,我不确定问题在哪里。我认为问题在客户端项目中,但也可能在服务器项目的资源类中。 我有一个使用这种方法的学生道课,我不认为这是一个问题,因为它适用于其他项目。 我有一个StudentResource类,它是我从包含这段代码的模式中创建的RESTful资源 然后,我创建了一个java项目,并使用此方法创建了名为OneStudent的RESTf

  • 我读了很多文章来寻找java应用程序的最佳Rest客户机,最后我发现将Jersey与ApacheHTTP客户机4.5结合使用非常好,但在很多文章中,我发现现在改型是最好的(我没有提到Volley,因为在我的例子中,我不需要API支持缓存)。 对于java客户机应用程序,改型是否更好。还是对Android来说更好?为什么我以前没有找到这个比较。。它们无法比较? 我可以比较一下它们的性能、连接池、它们

  • 问题内容: 在Java方法中,我想使用Jersey客户端对象在RESTful Web服务(也使用Jersey编写)上执行POST操作,但不确定如何使用客户端发送将用作FormParam的值在服务器上。我能够发送查询参数就好了。 问题答案: 我自己尚未完成此操作,不过Google- Fu的简短内容在blogs.oracle.com上提供了一个技术提示,其中包含您真正要求的示例。 摘自博客文章的示例:

  • 问题内容: 我在生产中看到很多连接重置,可能有多种原因,但我想确保代码中没有连接泄漏。我在代码中使用Jersey客户端 最初,我以以下方式实例化客户端Client this.client = Client.create(),我们将其更改为ApacheHttpClient.create()。我没有在响应上调用close(),但是我假设ApacheHttpClient将在内部执行该操作,因为HttpC

  • DropWizard在REST的引擎盖下使用泽西。我正在尝试弄清楚如何为我的DropWizard应用程序将公开的RESTfulendpoint编写客户端。 为了这个例子,让我们假设我的DropWizard应用程序有一个< code>CarResource,它为CRUDding cars公开了几个简单的RESTfulendpoint: 因此,我认为结构化的API客户端将类似于: 但是我能找到的关于D