- 项目需求
客户提供接口供程序调用,在调用失败时首先通过cmd命令调用,确认接口是可以调用的,然后通过jdk8内置工具调用接口
- 模拟接口
@PostMapping("/jumpByVin")
public ResponseEntity<String> jumpByVin(@RequestBody Map<String, String> requestBody) throws Exception {String vin = requestBody.get("vin");// 记录 VIN 信息System.out.println("===== Received VIN =====");System.out.println(vin);System.out.println("========================");return ResponseEntity.ok(vin);
}
- CMD调用
curl -X POST "http://localhost:8080/harness-boot/publisher/publishermanagement/jumpByVin" -H "Content-Type: application/json" -d "{\"vin\":\"TESTVIN123456\"}"
- JDK8调用
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;public class PostRequestByVin {public static void main(String[] args) {try {String url = "http://localhost:8080/harness-boot/publisher/publishermanagement/jumpByVin";String jsonInputString = "{\"vin\":\"TESTVIN123456\"}";// 创建连接URL obj = new URL(url);HttpURLConnection con = (HttpURLConnection) obj.openConnection();con.setRequestMethod("POST");con.setRequestProperty("Content-Type", "application/json; utf-8");con.setRequestProperty("Accept", "application/json");// 允许写入请求体con.setDoOutput(true);try (OutputStream os = con.getOutputStream()) {byte[] input = jsonInputString.getBytes("utf-8");os.write(input, 0, input.length);}// 读取响应java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(con.getInputStream(), "utf-8"));StringBuilder response = new StringBuilder();String responseLine;while ((responseLine = br.readLine()) != null) {response.append(responseLine.trim());}System.out.println("Response: " + response.toString());} catch (Exception e) {e.printStackTrace();}}
}