2017-01-23 6 views
-1

基本的には、サーバーに文字列を送信できる単純なHTMLページを作成しようとしています。サーバーはlocalhost上のいくつかのポートで実行され、その文字列を受け取ります。JSクライアントからPOST要求を受け取ることができるJavaサーバー

私はPOSTリクエストを処理できる単純なサーバー用codeを見つけた:

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(); 
    } 
} 

しかし、私は、私はさらに何をすべきかわかりません。だから、私はJSスクリプトでの.htmlファイルを開く、私のサーバーを始めている

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); 
} 

、およびスクリプトは、サーバーに接続します。私は、非同期リクエストを送信することができXMLHttpRequestを使用する必要があることを学びました。どのようにすれば、スクリプトが送信するメッセージを処理できますか?どのようにデコードして印刷できますか?そして、最終的には、正しい方法でメッセージ送信者を書いていますか?

+1

私はあなたがこれを "ベアメタル"百万年に開発すると思います... javaサーブレットについて読んでください。 Javaには軽いアーキテクチャー(非サーブレット)のhttpframeworksはほとんどありませんが、サーブレットAPIは開発者を起動するのに最も簡単です –

+0

Tomcatなどを使って通常のサーバーアプリケーションを作成します –

+0

[フォーム送信のようなJavaScript投稿要求] ://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit) – Amir

答えて

1

&のテストを続けて作成したエンドポイントをヒットしようとしている場合は、Postmanを試してみてください。 POSTリクエストのためのカスタムボディを書くことができるはずです。

関連する問題