使用JAVA代码向REST API发送HTTP GET请求发送JSON数据。

10 浏览
0 Comments

使用JAVA代码向REST API发送HTTP GET请求发送JSON数据。

我已成功地向我的API发出了以下curl请求:\n

curl -v -X GET -H "Content-Type: application/json" -d {'"query":"some text","mode":"0"'} http://host.domain.abc.com:23423/api/start-trial-api/

\n我想知道如何在JAVA代码内发出这个请求。我尝试通过谷歌和堆栈溢出搜索解决方案,但只找到了如何通过查询字符串发送数据或如何通过POST请求发送JSON数据的方法。\n谢谢。

0
0 Comments

问题的原因是:需要从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


    com.sun.jersey
    jersey-json
    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);

以上是从JAVA代码中的HTTP GET请求发送JSON数据到REST API的解决方法。

0
0 Comments

问题的出现原因是用户想要通过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对象,将要发送的对象作为参数传入:

HttpEntity entity = new HttpEntity(person);

6. 使用RestTemplate的postForEntity()方法发送HTTP POST请求,并将返回结果保存在ResponseEntity对象中:

ResponseEntity response = restTemplate.postForEntity(url, entity, Person.class);

7. 从ResponseEntity对象中获取返回的对象:

Person person = response.getBody();

通过以上步骤,用户可以使用JAVA代码将JSON数据以HTTP GET请求的方式发送到一个REST API,并且使用Spring的RESTTemplate工具来实现。

0
0 Comments

问题的原因是需要向一个REST API发送HTTP GET请求,并在请求中发送JSON数据。解决方法是使用JAVA代码编写一个RestClient类,其中包含get和post方法,用于发送GET和POST请求。此外,还需要编写一个JsonUtils类,用于将JSON数据转换为Java对象和将Java对象转换为JSON数据。通过调用RestClient类的get和post方法,可以实现向REST API发送GET和POST请求并处理返回的数据。

0