2017-01-23 5 views
-1

В основном я просто пытаюсь создать простую HTML-страницу, которая может отправить строку текста на сервер. Сервер работает на каком-то порту на локальном хосте и получает эту строку.Java-сервер, который может получать запросы POST от JS-клиента

Я нашел code для простого сервера, который может обрабатывать 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); 
} 

Итак, я начинаю свой сервер, открыв .html файл JS скрипт, и скрипт подключается к серверу. Как тогда я могу обработать сообщение, которое отправляет скрипт? Как я могу его декодировать и распечатать? И, в конце концов, я правильно пишу отправителя сообщения?

+1

Думаю, вы разработаете этот «на голом металле» миллионы лет ... читайте о сервлете Java. Java имеет несколько httpframeworks с «легкой архитектурой» (несервлет), но сервлет API является самым простым для начинающего разработчика. –

+0

Используйте Tomcat или что-то равное для создания обычного серверного приложения. –

+0

Возможный дубликат [JavaScript post request as form submit] (http : //stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit) – Amir

ответ

1

Если вы просто пытаетесь попасть в конечную точку, созданную для тестирования &, продолжая строить, попробуйте использовать Postman. Вы должны иметь возможность написать настраиваемое тело для своего запроса POST.

 Смежные вопросы

  • Нет связанных вопросов^_^