package org.example.server; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.example.constant.StockConstant; import org.example.enums.EStockType; import org.java_websocket.WebSocket; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import org.springframework.beans.factory.annotation.Autowired; import javax.websocket.ClientEndpoint; import javax.websocket.ContainerProvider; import javax.websocket.Session; import javax.websocket.WebSocketContainer; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; /** * @program: webSocketProject * @description: * @create: 2024-03-26 16:11 **/ @ClientEndpoint public class wcServer extends WebSocketClient { public wcServer(URI serverUri) throws URISyntaxException { super(serverUri); } @Override public void onOpen(ServerHandshake shake) { send(("key:" + StockConstant.KEY + ":" + EStockType.IN.getContryId()).getBytes()); } @Override public void onMessage(String paramString) { send(paramString); System.out.println("接收到消息:" + paramString); } @Override public void onClose(int paramInt, String paramString, boolean paramBoolean) { System.out.println("关闭..."); } @Override public void onError(Exception e) { System.out.println("异常" + e); } private HttpClient httpClient; // 声明一个成员变量 private HttpPost httpPost = new HttpPost("http://localhost:8001/api/sendNotification"); // 创建一个HttpPost对象 @Override public void send(String message) { try { if (httpClient == null) { httpClient = HttpClients.createDefault(); // 使用单例模式创建HttpClient对象 } // 准备 form-data 参数 List params = new ArrayList<>(); params.add(new BasicNameValuePair("message", message)); // 设置编码格式为 UTF-8 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, StandardCharsets.UTF_8); httpPost.setEntity(entity); // 设置HttpPost对象的参数 // 发送请求 HttpResponse response = httpClient.execute(httpPost); // 处理响应 int statusCode = response.getStatusLine().getStatusCode(); System.out.println("Status Code: " + statusCode); } catch (IOException e) { e.printStackTrace(); } } }