2011-06-29 3 views
1

私はJava、PHPなどには全く新しいので...私のばかげた質問を許してください。PHPサーバ - Javaクライアント - ポストとエコー

Javaクライアントアプリケーションから名前を受け取るPHPサーバーアプリケーションを作成したいと思います。出力上に名前を表示し、ステータスメッセージ(Write failed/success)を送信するように応答する必要があります。

Javaクライアントに名前を送信し、PHPプログラムから返信を受け取る方法と、PHPプログラムが名前を受信して​​出力して返答を送信する方法はありますか?私はたくさんのGoogle検索を行った:私はいくつかのコード例を見つけたが、スクリプトはまだ動作しません。

それは、私は次のように書いている仕事にしようとして:

このように

サーバー側

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

私は、サーバーの前に、クライアントから名前を受け取っていたことを「ジュリオ」を考えました受け取った後、受け取った名前は印刷されていたはずである。

反対側に

クライアント側

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

も...私は出力に私は名前だけジュリオを見ることを得ます。 送信された名前を受信して​​印刷するにはどうすればよいですか?

助けてください

ありがとうございます。

Giulio !!

+0

応答出力にHTMLを使用しないでください。それは必要はありません。 PHPの出力にJSON、XML、さらにはプレーンテキストを出力させます。ちょうどあなたがHTTPを使用しているので、通信のPHP <-> javaはあなたがhtmlを使用する必要はありません。 –

答えて

0

リクエスト方法をJavaからPOSTに設定する必要があります。あなたはHttpURLConnectionconnectionをキャストすることによって、これを行うと、それにsetRequestMethod("POST")を呼び出すことができます。

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

あなたがsetDoOutputを呼び出す前に、それを追加します。

+0

これは私がやったことですが、それでも動作しません: – gabellissimo

0

URLパラメータには、要求を正しく解釈するための疑問符文字が必要です。

試し

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

out.write("username=NameToBeWritten"); 

を交換して、問題が解決するかどうかを確認するために、また、あなたはすぐに入力を開いているので、入力ストリームを開く前に睡眠を追加したい場合がありますストリームがデータを受け取るために、サーバーがクライアント側の出力にフラッシングを実行していない可能性があります。単なる考えです。

私は質問が古いことを知っていますが、あなたが成功したかどうかを私たちにお知らせください。

関連する問題