Hutool的Http调用简单使用
Http调用
http调用即通过http方式调用第三方接口,现成的工具库有很多,如HttpClient、RestTemplate、OKHttp,今天主要介绍Hutool-http
前置环境
Spring Initializr初始化项目 选择Spring Web和Lombok依赖 Java版本1.8
application.yml配置如下:
server:
servlet:
context-path: /api
port: 8123
引入Hutool依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.15</version>
</dependency>
先写一个简单的被调用接口
主要功能就是:
- GET调用返回名字
- POST调用返回名字
- POST调用返回User对象
Controller
package com.zd.zdinterface.controller;
import com.zd.zdinterface.model.User;
import org.springframework.web.bind.annotation.*;
/**
* 查询名称
* @author zd
*/
@RestController
@RequestMapping("/name")
public class NameController {
@GetMapping("/")
public String getNameByGet(String name) {
return "GET 你的名字是:" + name;
}
@PostMapping("/")
public String getNameByPost(@RequestParam String name) {
return "Post 你的名字是:" + name;
}
@PostMapping("/user")
public String getUserNameByPost(@RequestBody User user) {
return user.getUsername();
}
}
User:
package com.zd.zdinterface.model;
import lombok.Data;
@Data
public class User {
private String username;
}
开始调用
先写一个简单的Client类
Client:
package com.zd.zdinterface.client;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.zd.zdinterface.model.User;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.HashMap;
public class ZdApiClient {
//调用接口方法一
public String getNameByGet(String name) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("name", name);
String result3= HttpUtil.get("http://localhost:8123/api/name/", paramMap);
System.out.println(result3);
return result3;
}
//调用接口方法二
public String getNameByPost(@RequestParam String name) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("name", name);
String result3= HttpUtil.post("http://localhost:8123/api/name/", paramMap);
System.out.println(result3);
return result3;
}
//调用接口方法三
public String getUserNameByPost(@RequestBody User user) {
String json = JSONUtil.toJsonStr(user);
HttpResponse httpResponse = HttpRequest.post("http://localhost:8123/api/name/user")
.body(json)
.execute();
System.out.println(httpResponse.getStatus());
String result = httpResponse.body();
System.out.println(result);
return result;
}
}
为什么这样写?需要看官方文档:
Hutool官网
Hutool文档
其中包括安装
以及使用
文章来源:https://www.toymoban.com/news/detail-595021.html
测试
package com.zd.zdinterface;
import com.zd.zdinterface.client.ZdApiClient;
import com.zd.zdinterface.model.User;
public class Main {
public static void main(String[] args) {
ZdApiClient zdApiClient = new ZdApiClient();
String res1 = zdApiClient.getNameByGet("zd");
String res2 = zdApiClient.getNameByPost("zd");
User user = new User();
user.setUsername("zd");
String res3 = zdApiClient.getUserNameByPost(user);
System.out.println(res1);
System.out.println(res2);
System.out.println(res3);
}
}
结果
代码GitHub仓库文章来源地址https://www.toymoban.com/news/detail-595021.html
到了这里,关于Hutool的Http调用简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!