PHP-сервер - Java-клиент - почта и эхо - PullRequest
1 голос
/ 30 июня 2011

Я совершенно новичок в Java, PHP и так далее ... поэтому, пожалуйста, прости мой глупый вопрос.

Я хочу написать серверное приложение PHP, которое получает имя от клиентского приложения Java. Он должен ответить, напечатав имя на выходе и отправив сообщение о состоянии (Запись не удалась / успешно).

Как заставить клиент Java отправлять имя и получать ответ от программы PHP, и как программа PHP получает и печатает имя и отправляет ответ? Я много гуглил: я нашел несколько примеров кода, но скрипт все еще не работает.

Пытаясь заставить его работать, я написал следующее:

Сторона сервера

    <html>
        <head>
            <title>PHP Giulio</title>
        </head>
        <body>   
            <?php
$username = "Giulio";                
echo "$username"; 
$username = $_POST['username'];
print "$username"; 
            ?>
        </body>
    </html>

таким образом я подумал, что до того, как сервер получил имя от клиента, было напечатано «Giulio», а после получения полученное имя было бы напечатано.

На другой стороне

Клиентская сторона

import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.*;

public class JavaPHP {
    public static void main(String[] args){
        URL url;
        try {
            url = new URL("http://www.mydomain.com/myfile.php");
            URLConnection connection = url.openConnection(); 
            connection.setDoOutput(true); 
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
            out.write("username=NameToBeWritten");
            out.flush(); 
            out.close(); 
            InputStream in=connection.getInputStream();
            in.read();
            in.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
    }
}

хорошо ... я получаю, что на выходе я вижу только имя Джулио. Как я могу заставить его получить и распечатать отправленное имя?

Пожалуйста, помогите мне

Заранее спасибо.

Джулио !!

Ответы [ 2 ]

0 голосов
/ 02 февраля 2014

Параметры URL требуют символа вопросительного знака для успешной интерпретации ваших запросов.

попробуй заменить

out.write("username=NameToBeWritten");

с

out.write("?username=NameToBeWritten");

И посмотрите, решает ли это проблему, также вы можете добавить спящий режим перед открытием входного потока, поскольку вы немедленно открываете входной поток для получения данных, а сервер может не завершить сброс вывода на ваш клиент сторона ода ... просто мысль.

Я знаю, что вопрос старый, но дайте нам знать, если у вас был какой-либо успех.

0 голосов
/ 30 июня 2011

Вам необходимо установить метод запроса на POST из Java.Вы можете сделать это, приведя connection к HttpURLConnection и позвонив на него setRequestMethod("POST"):

HttpURLConnection urlCon = (HttpURLConnection) connection;
urlCon.setRequestMethod("POST");

Добавьте его перед вызовом setDoOutput.

...