簡體   English   中英

通過URL參數將帶空格的數據發送到PHP的另一種方法

[英]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個解決方案

  1. 當從android發布數據時,您應該使用下划線或類似的東西將空格分隔的單詞連接起來,而在獲取該數據的PHP代碼中,只需將其用下划線或用於連接數據的內容進行拆分即可

  2. 修改您的Php網址並輸入一個regex模式,其中url參數可以為ex參數保留空格,該空格可以等於([\\w\\d\\s]+)這樣的正則表達式

希望它能工作:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM