Я публикую форму на PHP в Java, но нет ответа в Ubuntu 18.10 - PullRequest
0 голосов
/ 05 мая 2019

Как заголовок, я хочу реализовать веб-сервер на Java, единственная проблема в том, что мне нужно опубликовать форму в login.php, а затем получить ответ.Следующий код показывает, как я отправляю данные в PHP.

URL url = new URL("http://127.0.0.1:6789" + req.uri);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// Convert string to byte array, as it should be sent
// req.form is the form data to post to the login.php
byte[] postDataBytes = req.form.getBytes(StandardCharsets.UTF_8);

// set the form from request as the post data to PHP
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.getOutputStream().write(postDataBytes);

// get response
int code = conn.getResponseCode();
InputStream is;
if (code == 200) {
    is = conn.getInputStream();
    fillHeaders(Status._200_);
} else {
    is = conn.getErrorStream();
    fillHeaders(Status._404_);
}

// get response conetent length from login.php
int length = conn.getContentLength();

Содержание файла login.php очень простое:

<?php
echo 'User name is:' . $_POST['loginName'];
?>

Когда я отлаживаю эту часть, я останавливаюсь вэта строка

int code = conn.getResponseCode();

Это означает, что я не могу получить ответ от login.php

Итак, как я могу изменить код или среду ubuntu (может быть, версию php?), чтобы решить эту проблему?проблема.

Thx.XD

1 Ответ

0 голосов
/ 05 мая 2019

Если java - сервер, а PHP - клиент, вы должны открыть прослушивающее соединение в java.

ServerSocket server = new ServerSocket(8080);
 System.out.println("Listening for connection on port 8080 ....");
 while (true) { 
Socket clientSocket = server.accept();
 InputStreamReader isr = new InputStreamReader(clientSocket.getInputStream()); 

BufferedReader reader = new BufferedReader(isr);
 String line = reader.readLine();
 while (!line.isEmpty()) { 
System.out.println(line); line = reader.readLine(); 
} 
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...