首页 > 解决方案 > 如果我尝试使用 html 存储它的工作正常,我的 android 应用程序不会在服务器数据库中存储任何值

问题描述

如果我尝试使用 html 存储它的工作正常,我的 android 应用程序不会在服务器数据库中存储任何值

数据库结构: 数据库结构图片

public class MainActivity extends AppCompatActivity {


    EditText E1,E2;
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        E1= (EditText) findViewById(R.id.editText2);
        E2 = (EditText) findViewById(R.id.editText3);
        button = (Button) findViewById(R.id.Button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name1=E1.getText().toString();
                String email1=E2.getText().toString();
                String type="insert";
                BackgroundWorker backgroundWorker=new BackgroundWorker(MainActivity.this);

                backgroundWorker.execute(type,name1,email1);



            }
        });
    }
    class BackgroundWorker extends AsyncTask<String,Void,String>
    {
        Context context;
        AlertDialog alertDialog;
        BackgroundWorker(Context ctx)
        {
            context=ctx;
        }

        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        protected String doInBackground(String... params) {
            String type=params[0];
            String ServerURL = "http://zaidinfo4you.ml/get_data.php";
            if(type.equals("insert"))
            {
                try{

                String name=params[1];
                String email=params[2];
                URL url= new URL(ServerURL);
                Log.d("test",name+","+email);
                    HttpURLConnection httpURLConnection=(HttpURLConnection)url.openConnection();
                    httpURLConnection.setRequestMethod("POST");
                    httpURLConnection.setDoOutput(true);
                    httpURLConnection.setDoInput(true);
                    OutputStream outputStream= httpURLConnection.getOutputStream();
                    BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
                    String post_data= URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"+URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8");
                    bufferedWriter.write(post_data);
                    bufferedWriter.flush();
                    bufferedWriter.close();
                    outputStream.close();
                    InputStream inputStream= httpURLConnection.getInputStream();
                    BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.ISO_8859_1));
                    String result="";
                    String line="";
                    while((line=bufferedReader.readLine())!=null)
                    {
                      result += line;

                    }
                    bufferedReader.close();
                    inputStream.close();
                    httpURLConnection.disconnect();
                    return result;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
        @Override
        protected void onPreExecute()
        {
            alertDialog = new AlertDialog.Builder(context).create();
            alertDialog.setTitle("Insert Successfully");
        }
        @Override
        protected void onPostExecute(String result)
        {
            alertDialog.setMessage(result);
            alertDialog.show();

        }
        protected void onProgressUpdate(Void... values)
        {
            super.onProgressUpdate(values);
        }
    }
}

如果我们使用 apk,我的 php 代码可以与我的 html 表单一起正常工作,但它不起作用请建议我并回复我'

标签: javaphpandroidmysqlsql

解决方案


要连接到 URL,您必须调用 connect 方法。outputStream.close();在 doInBackground 方法中复制下面的行。

httpURLConnection.connect()

推荐阅读