簡體   English   中英

可以從JS客戶端獲取POST請求的Java服務器

[英]Java server that can get POST requests from JS client

基本上,我只是試圖創建一個簡單的HTML頁面,該頁面可以將文本字符串發送到服務器。 服務器在本地主機上的某個端口上運行,並接收該字符串。

我找到了可以處理POST請求的簡單服務器的代碼

public static void main(String args[]) throws Exception
{
    ServerSocket s = new ServerSocket(8080);

    while (true) {
        Socket remote = s.accept();
        System.out.println("Connected");
        BufferedReader in = new BufferedReader(new InputStreamReader(remote.getInputStream()));
        PrintWriter out = new PrintWriter(remote.getOutputStream());

        String str = ".";

        while (!str.equals("")) {
            str = in.readLine();
            if (str.contains("GET")) {
                break;
            }
        }

        System.out.println(str);

        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/html");
        out.println("Access-Control-Allow-Origin: null");
        out.println("");
        out.flush();
    }
}

但是我不知道該怎么做。 我了解到我需要使用可以發送異步請求的XMLHttpRequest

function sendData(data) {
    var XHR = new XMLHttpRequest();
    var urlEncodedData = "message";
    var urlEncodedDataPairs = [];
    var name;
    for (name in data) {
        urlEncodedDataPairs.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
    }
    urlEncodedData = urlEncodedDataPairs.join('&').replace(/%20/g, '+');
    XHR.open('POST', 'http://localhost:8080', true);
    XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    XHR.send(urlEncodedData);
}

因此,我正在啟動服務器,使用JS腳本打開.html文件,然后該腳本連接到服務器。 我該如何處理腳本發送的消息? 如何解碼和打印它? 最終,我是否以正確的方式編寫了消息發件人?

如果您只是想嘗試創建用於測試並繼續構建的端點,請嘗試使用Postman 您應該能夠為POST請求編寫一個自定義主體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM