将 POST 请求从 Android 应用程序发送到 PHP 脚本的问题

时间:2021-01-31 17:38:52

标签: php android post

PHP 脚本没有收到我从 Android 应用程序发送的 POST 请求。 我试图解决它,但直到现在还没有好的结果:( 我正在使用异步任务来发出 POST 请求。 当我从 Web 浏览器运行 PHP 脚本时,它可以正常工作。

我正在使用异步任务:

        "edge_media_to_caption": {
            "edges": [
                {
                    "node": {
                        "text": **"Summer is a state of mind.\n\n#locobeachresort #locoland #beachlife #batroun"**
                    }
                }
            ]
        },
      
      
        "edge_media_to_caption": {
            "edges": [
                {
                    "node": {
                        "text": **"Sunshine is the best medicine.\n\n#locobeachresort #locoland #beachlife #batroun"**
                    }
                }
            ]
        },

还有:

private class zarejestrujUzytkownika  extends AsyncTask<Void, Void, String> {


    ProgressDialog dialog = null;

    @Override
    protected void onPreExecute() {

        dialog = ProgressDialog.show(SignIn.this, "Rejestruję nowego użytkownika...", "Proszę czekać...", true);

    }

    @Override
    protected String doInBackground(Void... arg0) {

        String message = "";
        serverPHP dbOperationsPHP = new serverPHP();


        message = dbOperationsPHP.rejestracjaUser3(userName, mailAddress, userPassword, userRower, userLokalizacja);



        return message;

    }

    @Override
    protected void onPostExecute( String message) {

        wyswietlKomunikat(message);
        dialog.dismiss();
    }

}

PHP 文件如下。当我从 Web 浏览器运行此文件时,没有错误。

public String rejestracjaUser3(String userName, String userMail, String userPassword, int userRower, int userLokalizacja)
    {
        String err = "";
        Map<String,String> params = new HashMap<String, String>();

        params.put("php_userName", userName);
        params.put("php_userMail", userMail);
        params.put("php_userPass", userPassword);
        params.put("php_userRower", String.valueOf(userRower));
        params.put("php_userLokalizacja", String.valueOf(userLokalizacja));
        params.put("php_comNUM", "fghy3568bhdt67ujsa45671b");

        StringBuilder sbParams = sbParamsPereparation(params);
        String paramsString = sbParams.toString();
        Log.d("param0001", paramsString);

        //Inny sposob wygeneroiwania parametrow
        String data = null;
        try {
            data = URLEncoder.encode("php_userName", "UTF-8")
                    + "=" + URLEncoder.encode(userName, "UTF-8");

            data += "&" + URLEncoder.encode("php_userMail", "UTF-8") + "="
                    + URLEncoder.encode(userMail, "UTF-8");

            data += "&" + URLEncoder.encode("php_userPass", "UTF-8")
                    + "=" + URLEncoder.encode(userPassword, "UTF-8");

            data += "&" + URLEncoder.encode("php_userRower", "UTF-8")
                    + "=" + URLEncoder.encode(String.valueOf(userRower), "UTF-8");

            data += "&" + URLEncoder.encode("php_userLokalizacja", "UTF-8")
                    + "=" + URLEncoder.encode(String.valueOf(userLokalizacja), "UTF-8");

            data += "&" + URLEncoder.encode("php_comNUM", "UTF-8")
                    + "=" + URLEncoder.encode("fghy3568bhdt67ujsa45671b", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        Log.d("param0001", data);





        //Koniec inny sposob wygenerowania parametrow


        try{
            String url = servURL + "add_user.php";
            Log.d("url_main", url);
            URL urlObj = new URL(url);
            //HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
            URLConnection conn = urlObj.openConnection();
            conn.setDoOutput(true);
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            //conn.setRequestMethod("POST");
            //conn.setRequestProperty("Accept-Charset", "UTF-8");

            //conn.setReadTimeout(10000);
            //conn.setConnectTimeout(15000);

            //conn.connect();
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write( data );
            wr.flush();



            /*
            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
            Log.d("test0001", String.valueOf(wr.size()));
            wr.writeBytes(data);
            Log.d("test0002", String.valueOf(wr.size()));
            wr.flush();
            wr.close();
             */
        } catch (IOException e) {
            e.printStackTrace();
        }

        return err;
    }

0 个答案:

没有答案