[英]Alternative way to send data with spaces to PHP via URL Parameters
我正在嘗試使用注冊頁面制作一個android應用程序。 保存這些詳細信息時,我正在使用PHP和Mysql。 我正在通過url參數發送用戶數據,所有數據對於單個單詞都可以正常工作,但是在名稱中如果有兩個單詞,則該URL斷開並且數據不會發送到php。 我該如何解決?
class send extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
try {
URL url = new URL("https://bacteriological-bus.000webhostapp.com/insert.php?name="+name+"&pass="+pwd+"&email="+email+"&phone="+phone+"&otp="+"0");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
bufferedReader.close();
return stringBuilder.toString();
} finally {
urlConnection.disconnect();
}
} catch (Exception e) {
Log.e("ERROR", e.getMessage(), e);
return null;
}
}
對於此類問題,最佳解決方案是使用URLEncoder。這是一個示例URLEncoder.encode(QueryString,“ UTF-8”)
URL編碼對我有用。
String url_s = "https://urweb.com/insert.php?name="+URLEncoder.encode(name,"UTF-8");
URL url = new URL(url_s);
我想到了2個解決方案
當從android發布數據時,您應該使用下划線或類似的東西將空格分隔的單詞連接起來,而在獲取該數據的PHP代碼中,只需將其用下划線或用於連接數據的內容進行拆分即可
修改您的Php網址並輸入一個regex模式,其中url參數可以為ex參數保留空格,該空格可以等於([\\w\\d\\s]+)
這樣的正則表達式
希望它能工作:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.