发送json的代码
package service.WxMessages;
import com.alibaba.fastjson2.JSONObject;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Map;
public class tokenSendServlet {
public static void main(String[] args) {
Map<String, String> tokenAndTime = new WxTokenRead().getTokenAndTime();
String token = tokenAndTime.get("token");
String time = tokenAndTime.get("time");
JSONObject json = new JSONObject();
json.put("token", token);
json.put("time", time);
String urlStr = "servlet/receiverToken";
sendJsonPostRequest(json.toJSONString(), urlStr);
}
public static void sendJsonPostRequest(String json, String urlStr) {
try {
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = json.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = connection.getResponseCode();
System.out.println("Response Code : " + responseCode);
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
接收json的代码(写的servlet)
package servlet;
import com.alibaba.fastjson2.JSONObject;
import dao.HikariConnection;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.stream.Collectors;
@WebServlet(urlPatterns = "/servlet/receiverToken", description = "这里是说明")
public class receiverToken extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
response.setContentType("text/html;charset=UTF-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String json = reader.lines().collect(Collectors.joining());
System.out.println("Received JSON: " + json);
JSONObject jsonObject = JSONObject.parseObject(json);
String token = jsonObject.getString("token");
String time = jsonObject.getString("time");
System.out.println("Token: " + token + " Time: " + time);
updateTokenAndTime(token, time);
} catch (Exception e) {
e.printStackTrace();
System.out.println("/servlet/receiverToken 接收token和时间失败!json为空");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public static int updateTokenAndTime(String token ,String time) {
final String sql = "UPDATE wx_token SET token = ?, time = ? WHERE id = ?";
int rowsAffected = 0;
try {
Connection conn = HikariConnection.getInstance();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, token);
ps.setString(2, time);
ps.setInt(3, 1);
rowsAffected = ps.executeUpdate();
if (rowsAffected > 0) {
} else {
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return rowsAffected;
}
}