2016-03-25 7 views
3

私は、サーバーにテキストを送信し、新しいテキスト値を返すif(text != null)チェックするアプリケーションを作成します。PHPサーバからAndroidに文字列を取得するには?

このような操作を行うための私のコード:

PHPサーバでは:

$text = $_POST["text1"]; 
if($text != null){ 
    echo "Contact1-----".$text."-----10h49 25/03/2016 at New York city"; 
} else{ 
    echo ""; 
}      

私は、サーバー上のファイルを保存し、このファイルにすべてのデータを書き込み、前に。 現時点では、アンドロイドデータに戻ってファイルに保存する必要はありません。 とAndroidのコードでは、次のとおりです。answernullである理由

final String scripturlstring = "http://www.anyexample.com/main.php"; 

AddContactActivity contact; 
public void sendToServer(final String text){ 
    contact = new AddContactActivity(); 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 

       String textparam = "text1=" + URLEncoder.encode(text, "UTF-8"); 

       URL scripturl = new URL(scripturlstring); 
       HttpURLConnection connection = (HttpURLConnection) scripturl.openConnection(); 
       connection.setDoOutput(true); 
       connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
       connection.setFixedLengthStreamingMode(textparam.getBytes().length); 
       contentWriter.write(textparam); 
       contentWriter.flush(); 
       contentWriter.close(); 

       InputStream answerInputStream = connection.getInputStream(); 
       final String answer = getTextFromInputStream(answerInputStream); 

       if(answer!="") { 
        String[] contactInfo = answer.split("-----"); 

        contact.insertContact(contactInfo[0], contactInfo[1], contactInfo[2], "", ""); 
       } 
       answerInputStream.close(); 
       connection.disconnect(); 


      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 

} 



public String getTextFromInputStream(InputStream is) { 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder stringBuilder = new StringBuilder(); 

    String currentLine; 
    try { 
     while ((currentLine = reader.readLine()) != null) { 
      stringBuilder.append(currentLine); 
      stringBuilder.append("\n"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return stringBuilder.toString().trim(); 
} 

私は知りません。

は、私はそれはのようなデータを返さなければならないと思う:

Contact1 $text 10h49 25/03/2016 at New York city

+0

を設定しますか? – Eduard7

+0

@ Eduard7何も表示されません。あなたはPHPファイルで発生すると思いますか? – vanloc

+0

は$ _GETに私が試した[ "テキスト1"] – Eduard7

答えて

1

$text = $_POST["text1"]; を交換してください。あなたはデータを掲載していないので、これは間違いなく間違っている:

$text = $_POST["text1"]; 

使用$ _GET [ "テキスト1"]は代わりに:

$text = $_GET["text1"]; 

あなたがが$ _REQUESTを使用することができますが、IMOそれは悪いですそれは$ _GET、$ _POST、$ _COOKIE変数をマージするためです。

+0

おかげで、私はクラス 'sendToServer(最終文字列テキスト)を使用して'ラインを掲示し、 'echo'新しい文字列値を通じてPHPサーバーから新しい文字列を受信したいです。 新しい行を受け取った後、私のアプリケーションは別のプロセスを続行します。 – vanloc

1

が最初のAndroidの部分とデバッグPHPコードを残す

$text = $_REQUEST['text1']; 
+0

ありがとう@Dhavalkumar Solanki:あなたの変更を試みました。 Androidクライアントでは、サーバーPHPからの値は受け取りません。私は 'getTextFromInputStream'クラスの問題は、このクラスの前にファイル内の値を取得するためだと思います。現在、PHPサーバーの 'echo'から直接値を取得しています。 – vanloc

+0

こんにちはあなたができ、その後、デバッグをデバッグし、応答をチェックするかのように、いくつかの時間のログは、HTTPメソッドのために働くべきではありませんioewi、私はいくつかの時間前に同じ問題を持っている、ログが動作しないはずですが、私はTextViewの中で設定されたときに、それは完璧な –

+0

はあなたに非常に感謝仕事します多く。私は多くの問題があるので 'TextView'を使用しません。シンプルで、私はサーバで 'text'をチェックしたいと思い、サーバは' echo'新しい文字列 'text'で応答します。私はこの行を受け取り、私のアプリケーションに処理を続ける。 Eduard7 @へ – vanloc

0

は、ブラウザでanyexample.com/main.php?text1=asd開いた場合に何が起こるかconnection.setDoInput(true);

+0

@mallaudinのおかげで、私は私の問題を解決しました。 – vanloc