From cbd00e53c6bdac7e95b34efddd392e655b042348 Mon Sep 17 00:00:00 2001 From: zhangmeng <1334717033@qq.com> Date: Wed, 8 Mar 2023 12:14:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=BC=A0=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=202023=E5=B9=B43=E6=9C=888=E6=97=A510:16:37?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/controller/HomeController.java | 31 ++++ .../controller/HttpDownLoadController.java | 12 ++ .../controller/HttpRequestController.java | 158 ++++++++++++++++++ .../controller/HttpUploadController.java | 40 +++++ .../com/zhangmeng/tools/utils/HttpUtils.java | 36 ++++ src/main/resources/fxml/home.fxml | 6 +- src/main/resources/fxml/http-request.fxml | 34 ++-- src/main/resources/fxml/http-upload.fxml | 23 ++- 8 files changed, 319 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/zhangmeng/tools/controller/HttpDownLoadController.java create mode 100644 src/main/java/com/zhangmeng/tools/controller/HttpRequestController.java create mode 100644 src/main/java/com/zhangmeng/tools/controller/HttpUploadController.java create mode 100644 src/main/java/com/zhangmeng/tools/utils/HttpUtils.java diff --git a/src/main/java/com/zhangmeng/tools/controller/HomeController.java b/src/main/java/com/zhangmeng/tools/controller/HomeController.java index 996586e..e46de78 100644 --- a/src/main/java/com/zhangmeng/tools/controller/HomeController.java +++ b/src/main/java/com/zhangmeng/tools/controller/HomeController.java @@ -33,6 +33,7 @@ import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.geometry.Pos; @@ -403,4 +404,34 @@ public class HomeController implements Serializable { }); } + @FXML + public void http_request_menu_item(ActionEvent event) { + load_http_tools(0); + } + + @FXML + public void http_upload_menu_item(ActionEvent event) { + load_http_tools(1); + } + + @FXML + public void http_download_menu_item(ActionEvent event) { + load_http_tools(2); + } + + public void load_http_tools(int index) { + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("http-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } } \ No newline at end of file diff --git a/src/main/java/com/zhangmeng/tools/controller/HttpDownLoadController.java b/src/main/java/com/zhangmeng/tools/controller/HttpDownLoadController.java new file mode 100644 index 0000000..4de7da7 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/HttpDownLoadController.java @@ -0,0 +1,12 @@ +package com.zhangmeng.tools.controller; + +import lombok.extern.slf4j.Slf4j; + +/** + * @author : 芊芊墨客 + * @version : 1.0 + * @date : 2023-03-08 12:01 + */ +@Slf4j +public class HttpDownLoadController { +} diff --git a/src/main/java/com/zhangmeng/tools/controller/HttpRequestController.java b/src/main/java/com/zhangmeng/tools/controller/HttpRequestController.java new file mode 100644 index 0000000..9a53a1f --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/HttpRequestController.java @@ -0,0 +1,158 @@ +package com.zhangmeng.tools.controller; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import com.zhangmeng.tools.utils.AlertUtils; +import com.zhangmeng.tools.utils.HttpUtils; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.geometry.Pos; +import javafx.scene.control.*; +import javafx.scene.layout.HBox; +import javafx.util.Callback; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +/** + * @author : 芊芊墨客 + * @version : 1.0 + * @date : 2023-03-08 10:21 + */ +@Slf4j +public class HttpRequestController { + + public enum Type{ + GET, + POST; + } + + @FXML + public Button commit; + + @FXML + public ListView request_params; + + @FXML + public TextField key; + + @FXML + public TextField value; + + @FXML + public Button add_params; + + @FXML + public TextField url; + + @FXML + public ComboBox request_type; + + @FXML + public TextArea request_result; + + private ObservableList list = FXCollections.observableArrayList(); + + @FXML + public void initialize() { + request_params.setFixedCellSize(40); + request_params.setEditable(true); + request_result.setWrapText(true); + request_params.setCellFactory(new Callback<>() { + @Override + public ListCell call(ListView param) { + return new ListCell<>(){ + @Override + protected void updateItem(Data s, boolean b) { + super.updateItem(s, b); + if (!b){ + HBox hBox = new HBox(); + hBox.setAlignment(Pos.CENTER); + hBox.getChildren().add(new Label(s.key + " <======> " + s.value)); + this.setGraphic(hBox); + } + } + }; + } + }); + + request_type.setItems(FXCollections.observableList(Arrays.stream(Type.values()).toList())); + request_type.getSelectionModel().select(0); + + request_params.setItems(list); + + add_params.setOnAction(event -> { + if (key.getText().length() == 0 ){ + AlertUtils.alert_warning("参数key不能为空!"); + return; + } + if (value.getText().length() == 0 ){ + AlertUtils.alert_warning("参数value不能为空!"); + return; + } + list.add(new Data(key.getText(),value.getText())); + }); + + commit.setOnAction(event -> { + + if (url.getText().length() == 0 ){ + AlertUtils.alert_warning("请求url不能为空!"); + return; + } + + Type type = request_type.getSelectionModel().getSelectedItem(); + + ObservableList items = request_params.getItems(); + Map map = new HashMap<>(); + for (Data item : items) { + map.put(item.key,item.value); + } + log.info("请求参数:{}",map); + request_result.setText(null); + if (type.equals(Type.GET)){ + if (map.entrySet().size()>0){ + request_result.setText(HttpUtils.get_request(url.getText(),map)); + }else { + request_result.setText(HttpUtils.get_request(url.getText())); + } + } + if (type.equals(Type.POST)){ + if (map.entrySet().size()>0){ + request_result.setText(HttpUtils.post_request(url.getText(),map)); + }else { + request_result.setText(HttpUtils.post_request(url.getText(),null)); + } + } + }); + } + + public static class Data{ + private String key; + private String value; + + public Data(String key, String value) { + this.key = key; + this.value = value; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/src/main/java/com/zhangmeng/tools/controller/HttpUploadController.java b/src/main/java/com/zhangmeng/tools/controller/HttpUploadController.java new file mode 100644 index 0000000..1790118 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/HttpUploadController.java @@ -0,0 +1,40 @@ +package com.zhangmeng.tools.controller; + +import com.zhangmeng.tools.utils.ImagePath; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import lombok.extern.slf4j.Slf4j; + +/** + * @author : 芊芊墨客 + * @version : 1.0 + * @date : 2023-03-08 12:00 + */ +@Slf4j +public class HttpUploadController { + + @FXML + public Button upload_button; + + @FXML + public TextArea upload_result; + + @FXML + public TextField url; + + @FXML + public void initialize() { + upload_button.setText(null); + ImageView iv = new ImageView(new Image(ImagePath.path(ImagePath.ImagePathType.IMAGE_FILE))); + iv.setPreserveRatio(true); + iv.setFitWidth(18); + upload_button.setGraphic(iv); + + + + } +} diff --git a/src/main/java/com/zhangmeng/tools/utils/HttpUtils.java b/src/main/java/com/zhangmeng/tools/utils/HttpUtils.java new file mode 100644 index 0000000..5febe72 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/utils/HttpUtils.java @@ -0,0 +1,36 @@ +package com.zhangmeng.tools.utils; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import lombok.extern.slf4j.Slf4j; + +import java.nio.charset.Charset; +import java.util.Map; + +/** + * @author : 芊芊墨客 + * @version : 1.0 + * @date : 2023-03-08 10:41 + */ +@Slf4j +public class HttpUtils { + + public static String get_request(String url){ + return HttpRequest.get(url).execute().body(); + } + public static String get_request(String url, Map paramMap){ + return HttpRequest.get(url).form(paramMap).execute().body(); + } + public static String get_request(String url,Map paramMap, Charset charset){ + return HttpRequest.get(url).form(paramMap).charset(charset).execute().body(); + } + + public static String get_request(String url,Map paramMap, Charset charset,int milliseconds ){ + return HttpRequest.get(url).form(paramMap).charset(charset).timeout(milliseconds).execute().body(); + } + + public static String post_request(String url,Map paramMap){ + return HttpUtil.post(url, paramMap); + } + +} diff --git a/src/main/resources/fxml/home.fxml b/src/main/resources/fxml/home.fxml index dd792e7..2d33534 100644 --- a/src/main/resources/fxml/home.fxml +++ b/src/main/resources/fxml/home.fxml @@ -55,9 +55,11 @@ - + - + + + diff --git a/src/main/resources/fxml/http-request.fxml b/src/main/resources/fxml/http-request.fxml index 6d9c75c..b98bab3 100644 --- a/src/main/resources/fxml/http-request.fxml +++ b/src/main/resources/fxml/http-request.fxml @@ -1,14 +1,28 @@ - - - - - - - + + + + + + + + + +