大家好,我是菜鳥阿貴,今天和大家講述一個簡單的小項目。
項目描述:通過固定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:運行起項目,頁面會顯示拉去的數據!!!!
--------金鱗豈是池中物,一遇風雲變化龍----------