gpt4 book ai didi

java - messagebodyreader Jersey

转载 作者:行者123 更新时间:2023-11-29 05:46:31 25 4
gpt4 key购买 nike

我正在为 restful web 服务制作一个 java 客户端,我想在请求正文中发送一个字符串。

这是我的课。

 public class params {
private String test;

public String getTest() {
return test;
}

public void setTest(String test) {
this.test = test;
}

这是我的主要功能类。

 public class testclient implements MessageBodyReader<params> {
public static void main(String[] args) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
params pobj = new params();
pobj.setTest("myname");
System.out.println(service.path("interface").post(params.class);
}

private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080/ivrservices").build();
}

public boolean isReadable(Class<?> params, Type genericType, Annotation[] arg2,
MediaType arg3) {
return false;
}

public params readFrom(Class<params> arg0, Type arg1,
Annotation[] arg2, MediaType arg3,
MultivaluedMap<String, String> arg4, InputStream arg5)
throws IOException, WebApplicationException {
// TODO Auto-generated method stub
return null;
}
}

我在默认函数中传递什么参数?

最佳答案

看来您完全误解了 MessageBodyReader 的用法。它由 Provider 而非客户实现。对于您的情况,不需要自定义提供程序。例如,您可以使用具有 POJO 功能的 Jackson Json 提供程序来发送/接收 params。因此,您的客户端配置将是:


ClientConfig cc = new ClientConfig().register(JacksonFeature.class)

这会将 params 序列化为 Json。不要忘记在服务器上注册 JacksonFeature 以反序列化请求。

如果您只想发送test 字符串,则无需将其换行。 String 是 Jersey 中的默认实体类型。

关于java - messagebodyreader Jersey ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700720/

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