1.导入依赖包
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
2、创建HttpClient对象
package com.sun;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class SpringcloudApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudApplication.class, args);
}
@Bean
public HttpClient create(){
return HttpClientBuilder.create().build();
}
}
3.调用
package com.sun.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.pojo.User;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.List;
@RestController
public class UserContrloler {
@Autowired
private HttpClient httpClient;
@Autowired
private ObjectMapper objectMapper;
@GetMapping("/user/{id}")
//Post请求返回单个对象
public User getById(@PathVariable Integer id) throws IOException {
String execute = httpClient.execute(new HttpPost("http://localhost:80/user/" + id), new BasicResponseHandler());
User user = objectMapper.readValue(execute, User.class);//转json对象
return user;
}
@GetMapping("/userList")
//Get请求返回集合
public List<User> userList() throws IOException {
String execute = httpClient.execute(new HttpGet("http://localhost:80/userList"), new BasicResponseHandler());
List<User> users = objectMapper.readValue(execute, objectMapper.getTypeFactory().constructParametricType(List.class,User.class));
return users;
}
}