使用JAVA代码向REST API发送HTTP GET请求发送JSON数据。
问题的原因是:需要从JAVA代码中的HTTP GET请求发送JSON数据到一个REST API。
解决方法是:使用Jersey客户端库,并在项目的pom.xml文件中添加com.sun.jersey组ID下的jersey-client和jersey-json依赖项。然后,创建一个WebResource对象连接到Web服务。使用一个POJO类来模型化要发送的数据,并使用resource对象调用API。最后,根据返回结果的Java映射类型,设置适当的accept调用,并将返回值分配给相应的变量。
以下是解决方法中的代码示例:
// 添加Jersey依赖项com.sun.jersey jersey-client 1.19.4 // 创建WebResource对象 WebResource resource = ClientHelper.createClient().resource(UriBuilder.fromUri("http://host.domain.abc.com:23423/api/").build()); // 创建Payload对象 class Payload { private String query; private int mode; // getter和setter方法 } // 发送GET请求并获取返回结果 Payload payload = new Payload(); payload.setQuery("some text"); payload.setMode(0); ResultType result = service .path("start-trial-api") .type(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON) .get(ResultType.class, payload); com.sun.jersey jersey-json 1.19.4
以上是从JAVA代码中的HTTP GET请求发送JSON数据到REST API的解决方法。
问题的出现原因是用户想要通过JAVA代码将JSON数据以HTTP GET请求的方式发送到一个REST API,并且使用Spring的RESTTemplate工具来实现。
解决方法是使用Spring的RESTTemplate工具来发送HTTP GET请求,并将JSON数据通过序列化成Java对象的方式传递。具体步骤如下:
1. 创建一个RESTTemplate对象:
RestTemplate restTemplate = new RestTemplate();
2. 创建一个HttpMessageConverter的列表,并添加一个MappingJacksonHttpMessageConverter对象到列表中:
List> list = new ArrayList >(); list.add(new MappingJacksonHttpMessageConverter()); restTemplate.setMessageConverters(list);
3. 创建一个要发送的对象(Person对象):
Person person = new Person();
4. 设置要发送的URL:
String url = "http://localhost:8080/add";
5. 创建一个HttpEntity对象,将要发送的对象作为参数传入:
HttpEntityentity = new HttpEntity (person);
6. 使用RestTemplate的postForEntity()方法发送HTTP POST请求,并将返回结果保存在ResponseEntity对象中:
ResponseEntityresponse = restTemplate.postForEntity(url, entity, Person.class);
7. 从ResponseEntity对象中获取返回的对象:
Person person = response.getBody();
通过以上步骤,用户可以使用JAVA代码将JSON数据以HTTP GET请求的方式发送到一个REST API,并且使用Spring的RESTTemplate工具来实现。