(⊙o⊙)… 对接三方接口(某**银行保险业务),请求方式POST,token类的参数要在Params里,其他业务类的参数正常放在Body里用JSON格式传输
应该挺简单的啊 但是用hutool等一些封装工具类 自己拼接在url后面,然后post请求过去三方接收不到token…
最后用原生写法就可以,无奈记录一下
这里放一下代码
public static void main(String[] args) {
try {
// 定义 URL 地址和需要拼接的参数
String urlString = "http://example.com/api";
String param1 = "value1";
String param2 = "value2";
// 拼接参数至 URL
String encodedUrl = urlString + "?param1=" + URLEncoder.encode(param1, "UTF-8")
+ "¶m2=" + URLEncoder.encode(param2, "UTF-8");
// 创建 URL 对象
URL url = new URL(encodedUrl);
// 创建 HttpURLConnection 对象
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为 POST
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
// 构建 JSON 报文
String jsonData = "{\"key1\":\"value1\", \"key2\":\"value2\"}";
// 启用输出流,将报文写入请求体
connection.setDoOutput(true);
OutputStream outputStream = connection.getOutputStream();
outputStream.write(jsonData.getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
// 发送请求并获取响应码
int responseCode = connection.getResponseCode();
// 获取响应数据
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 处理响应数据
System.out.println("Response Code: " + responseCode);
System.out.println("Response Data: " + response.toString());
} catch (IOException e) {
e.printStackTrace();
}
}