2016-09-20 2 views
0

変数をアンドロイドからphpに渡そうとしていますが、PHPの値を受け取っても空白の後に値が得られません。変数を記録している間、私は、PHP側変数をアンドロイドからPHPに渡しているときに空白の後に値を取得しない

$uname = $_GET['name']; 

private void register(String txtname) { 
String urlSuffix = "?name="+txtname; 
Log.d("unmae",txtname); 
    class RegisterUser extends AsyncTask<String, Void, String>{ 
     ProgressDialog loading; 


     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      loading = ProgressDialog.show(UserRegister.this,"Please Wait","Loading..."); 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 
         } 

     @Override 
     protected String doInBackground(String... params) { 
      String s = params[0]; 
      BufferedReader bufferReader = null; 
      try { 
       URL url = new URL(REGISTER_URL+s); 
       HttpURLConnection con= (HttpURLConnection) url.openConnection(); 
       bufferReader=new BufferedReader(new InputStreamReader(con.getInputStream())); 
       String result; 
       result = bufferReader.readLine(); 
       return result; 

      } catch (Exception e) { 

       return null; 
      } 
     } 
    } 

     RegisterUser ru = new RegisterUser(); 
     ru.execute(urlSuffix); 
} 

、のように変数を渡しています、出力はこの 例:ようなものです:PHP側のエコーwhie unmae:first second

それこのように表示されます

例:$uname = $_GET['name']; echo $uname; output:first

+0

をGETなどのパラメータにあなたは私が考えるスペースを持つことができないので、この問題が発生し、シンボルとスペースを交換して、PHPでそのシンボルを見つけて作ってみる方法を指定します。それはスペース –

+0

"%20"と置き換えます –

+0

変数名またはその値にスペースがあるかどうかは不明です。あなたは何をしているのかを示していません。なぜ我々は推測する必要がありますか? 'txtname'にある場合、urlパラメータとその値には他の '禁止された'文字があります。あなたは最初に文字列全体をエンコードします。 – greenapps

答えて

3

あなたが名前として使用している変数Stringをエンコードしてみてください。これは

// This will get the final URL for request 
String uri = Uri.parse(REGISTER_URL) 
       .buildUpon() 
       .appendQueryParameter("name", txtname) 
       .build().toString(); 
+0

put ru.execute(URLEncoder.encode(urlSuffix、 "utf-8"));その後、サーバー側からメッセージを受け取る – Akhil

+0

それは何と言う? – adalPaRi

+0

+で空白を置き換えると、私の仕事です。 – Akhil

0
  1. あなたが使用する必要があり、 "20%"

    ru.execute(URLEncoder.encode(urlSuffix, "utf-8")); 
    

    以上、URIビルダーを使用して不正な文字を防ぐか"+"またはによってスペースに置き換えられますURLエンコーダ

    String urlSuffix= URLEncoder.encode(name, "UTF-8"); 
    
  2. String URL = "http://android.com/android_test/httpget.php? +name=urlSuffix" 
    
    URL url=new URL(ur_url); 
    urlConnection= (HttpURLConnection) url.openConnection(); 
    urlConnection.setRequestMethod("GET"); 
    
関連する問題