当前位置: 首页 > 知识库问答 >
问题:

从Javafx生成的表单向HTTP POST请求发送数据

从智志
2023-03-14

我使用Javafx Scene Builder 2.0制作了一个表单,我让表单工作,并将变量设置为表单元素值。我还创建了一个接收发布数据并将数据插入数据库的PHP脚本。

我需要一些关于通过http post将javafx表单数据发送到我的php脚本的帮助。

这是我到目前为止的java代码。

主要的JAVA

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Orbis Cob Submit");
        primaryStage.setScene(new Scene(root, 800, 600));
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);
    }
}

Controller.java

package sample;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.text.Text;
import java.io.IOException;

import java.io.IOException;
import java.util.Observable;

public class Controller {
    //Send Vars
    private String sendDataType;
    private String sendCobTarget;
    private String sendVendor;
    private String sendCobName;
    private String sendDealerID;
    private String sendJobType;
    private String sendStartDate;
    private String sendEndDate;
    private String sendAmount;
    private String sendCost;
    private String sendDataDescription;
    private DataBase db = new DataBase();

    //Data list for drop downs
    ObservableList<String> dataTypeList = FXCollections.observableArrayList("BK", "BR", "DB", "DEQ", "FI", "MB", "OB", "SAT", "SURN");
    ObservableList<String> cobTargetList = FXCollections.observableArrayList("Sales", "Services", "Both");
    ObservableList<String> vendorList = FXCollections.observableArrayList("SJO", "OCZ","Inhouse");
    ObservableList<String> jobTypeList = FXCollections.observableArrayList("Mail", "Digital");

    //Form Elements
    @FXML
    public ChoiceBox dataType;

    @FXML
    public ChoiceBox cobTarget;

    @FXML
    public ChoiceBox vendor;

    @FXML
    public Button button;

    @FXML
    public Text message;

    @FXML
    public TextField cobName;

    @FXML
    public TextField dealerID;

    @FXML
    public ChoiceBox jobType;

    @FXML
    public DatePicker startDate;

    @FXML
    public DatePicker endDate;

    @FXML
    public TextField sentAmount;

    @FXML
    public TextField cost;

    @FXML
    public TextField dataDescription;


    @FXML
    private  void initialize(){
        dataType.setItems(dataTypeList);
        cobTarget.setItems(cobTargetList);
        vendor.setItems(vendorList);
        jobType.setItems(jobTypeList);

         button.setOnAction(e -> {
             this.sendDataType = dataType.getValue().toString();
             this.sendCobTarget = cobTarget.getValue().toString();
             this.sendVendor = vendor.getValue().toString();
             this.sendCobName = cobName.getText();
             this.sendDealerID = dealerID.getText();
             this.sendJobType = jobType.getValue().toString();
             this.sendStartDate = startDate.getValue().toString();
             this.sendEndDate = endDate.getValue().toString();
             this.sendAmount = sentAmount.getText();
             this.sendCost = cost.getText();
             this.sendDataDescription = dataDescription.getText();

            //Send Field Data to HTTP POST REQUEST

        });
    }



}

共有1个答案

齐嘉庆
2023-03-14

您最好的选择是使用像unirest这样的库,它使发送HTTP(S)请求变得更容易。

你这样使用它:

Unirest.post("http://httpbin.org/post")
    .field("sendDataType", dataType.getValue().toString())
    .field("sendCobTarget", cobTarget.getValue().toString())
    .field("sendDataType", dataType.getValue().toString())
    .field("sendCobTarget", cobTarget.getValue().toString())
    .field("sendVendor", vendor.getValue().toString())
    .field("sendCobName", cobName.getText())
    .field("sendDealerID", dealerID.getText())
    .field("sendJobType", jobType.getValue().toString())
    .field("sendStartDate", startDate.getValue().toString())
    .field("sendEndDate", endDate.getValue().toString())
    .field("sendAmount", sentAmount.getText())
    .field("sendCost", cost.getText())
    .field("sendDataDescription", dataDescription.getText())
    .asJson();

您需要将每个字段设置为要发送的值。

 类似资料:
  • 本文向大家介绍Android使用httpPost向服务器发送请求的方法,包括了Android使用httpPost向服务器发送请求的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android使用httpPost向服务器发送请求的方法。分享给大家供大家参考,具体如下: 可以直接用的完整类。 希望本文所述对大家Android程序设计有所帮助。

  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。

  • 我有一个本地运行的服务器,它有一个内置的rest api。要通过这个api登录,我们需要将用户名,密码和组织作为参数发送到urllocalhost:8090/ehr/api/v1/login通过POST方法和服务器返回一个auth令牌作为响应。当我尝试直接这样做时,无需用户通过以下代码从表单输入: 它工作得非常好,auth token作为json返回,但如果我尝试通过以下代码通过用户表单输入执行相

  • javax.net.ssl.sslhandShakeException:收到致命警报:在com.ibm.jsse2.O.A(O.java:8)在com.ibm.jsse2.sslsocketimpl.B(SSLSocketimpl.java:40)在com.ibm.jsse2.sslsocketimpl.A(SSLSocketimpl.java:554)在com.ibm.jsse2.sslsock

  • 我对邮递员有意见... 但是,当我尝试以 raw(json) 格式的正文发送相同的请求时,我得到了这个: 我试图通过Angular 5将数据发送到Drupal 8后端。 谢谢你!

  • 对传递的 URL 发出一个 POST 请求。 使用 XMLHttpRequest web api 对给定的url 发出一个 post 请求。 用 setRequestHeader 方法设置 HTTP 请求头的值。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第三个参数 data ,不发送数