我现在有基于jersey的服务器端代码,我想使用java fx制作客户端使其可以通过jersey的Client访问服务器发布的服务我该怎么做
时间: 2024-02-24 22:58:09 浏览: 73
用Java实现客户端和服务器传输
您可以使用 JavaFX 的网络 API,例如 HttpURLConnection 或 OkHttp,来发送 HTTP 请求并接收响应。以下是一个使用 HttpURLConnection 的示例代码:
```java
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpService extends Service<String> {
private String url;
public HttpService(String url) {
this.url = url;
}
@Override
protected Task<String> createTask() {
return new Task<String>() {
@Override
protected String call() throws Exception {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 发送 GET 请求
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
} else {
throw new Exception("HTTP 请求失败,响应码:" + responseCode);
}
}
@Override
protected void failed() {
Alert alert = new Alert(Alert.AlertType.ERROR, getException().getMessage(), ButtonType.OK);
alert.showAndWait();
}
};
}
}
```
您可以将上述代码作为一个 JavaFX 的 Service 使用,例如:
```java
HttpService service = new HttpService("http://localhost:8080/hello");
service.setOnSucceeded(event -> {
String response = service.getValue();
// 处理响应
});
service.start();
```
其中,`http://localhost:8080/hello` 是您服务器端发布的服务的 URL。您需要根据实际情况进行修改。
阅读全文