大家好,我是菜鸟阿贵,今天和大家讲述一个简单的小项目。
项目描述:通过固定url进行访问第三方网页,获取数据以后展示在前端(页面)。
1:具体实现,springboot项目,用到http协议,以及相关获取方式。
2:首先我们定义一个client类:
@Service
public class HttpClient {
public String client(String url, HttpMethod method, MultiValueMap<String,String> params){
RestTemplate template = new RestTemplate();
ResponseEntity<String> response1 = template.getForEntity(url,String.class);
return response1.getBody();
}
}
3:如代码块我们可以直观地看到:类中方法是一个带参的方法,包括请求的url,请求的方式,以及拉取到的数据存放在一个集合,并且以param定义。
4:ResponseEntity response1 代表响应的实体类,
***RestTemplate***是Spring提供的一个服务之间请求的工具,并且可以自动实现json的序列化和反序列化。
然后在返回请求体的get方法。
5:随后我们再定义一个控制层:定义为:HelloController.java
代码块为:`@RestController
@RequestMapping(value = “hello”)
public class HelloController {
private String u = "http://127.0.0.1";
@Autowired
HttpClient httpClient;
@RequestMapping(value = "hellos")
public String hello(){
String url = u+"/api/table.xml?content=sensors" +
"&username=prtgadmin&password=prtgadmin&" +
"group,device,sensor,status," +
"message,lastvalue,priority,favorite";
HttpMethod httpMethod = HttpMethod.GET;
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
return httpClient.client(url,httpMethod,params);
}
}`
由此可见:@RestController 标注为controller类
Mapping映射为 “hello”
在类中定义一个私有的字符串:就是你要输入的url的固定请求头,之所以将他单独放在上面是因为后面可以根据需求改动,把它们分开以便于修改添加,我的url前面固定的是“
“http://127.0.0.1””,所以我将他单独拿出来定义在最前面!
2:然后将刚才写的类用@Autowired自动注入进来,
再定义一串要请求的url,将刚才定义的u和他进行拼接即可!
3:再利用HttpClient 中的 GET方法(请求方式分为GET和POST,区别自行百度)。
4:利用get进行网页请求!
:5: MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
将获取到的网页数据用LinkedMultiValueMap接收存放,
返回httpClient中的请求体的内容,包括(url,请求方式,请求内容存放的集合),
6:运行起项目,页面会显示拉去的数据!!!!
--------金鳞岂是池中物,一遇风云变化龙----------