我可以用java fx结合jersey的Client写吗
时间: 2024-01-25 14:02:49 浏览: 75
frameworkFx_Mavem:框架Fx com Mavem
当然可以!您可以使用 Jersey 的 Client API 来发送 HTTP 请求并接收响应。以下是一个使用 Jersey Client 的示例代码:
```java
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.core.MediaType;
public class JerseyService extends Service<String> {
private String url;
public JerseyService(String url) {
this.url = url;
}
@Override
protected Task<String> createTask() {
return new Task<String>() {
@Override
protected String call() throws Exception {
Client client = ClientBuilder.newClient();
Invocation.Builder builder = client.target(url)
.request(MediaType.APPLICATION_JSON_TYPE);
String response = builder.get(String.class);
return response;
}
@Override
protected void failed() {
Alert alert = new Alert(Alert.AlertType.ERROR, getException().getMessage(), ButtonType.OK);
alert.showAndWait();
}
};
}
}
```
您可以将上述代码作为一个 JavaFX 的 Service 使用,例如:
```java
JerseyService service = new JerseyService("http://localhost:8080/hello");
service.setOnSucceeded(event -> {
String response = service.getValue();
// 处理响应
});
service.start();
```
其中,`http://localhost:8080/hello` 是您服务器端发布的服务的 URL。您需要根据实际情况进行修改。
阅读全文